18:56:31.341 [debug] QUERY OK source="sources" db=0.2ms idle=994.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 18:56:31.341 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 18:56:31.342 [debug] QUERY OK source="media_items" db=1.1ms idle=994.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] 18:56:31.343 [debug] QUERY OK source="media_items" db=0.8ms idle=996.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "d5fd69fc-d785-45c7-ba84-1c81d571884a", "https://www.youtube.com/watch?v=A9h2npIn8RQ", false, "A9h2npIn8RQ", 45, [], 693, false, 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, false, 98, ~U[2025-11-02 21:25:51Z], ~U[2026-01-01 00:56:31Z], ~U[2026-01-01 00:56:31Z], "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", "https://www.youtube.com/watch?v=A9h2npIn8RQ", "A9h2npIn8RQ", 45, 693, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, ~U[2025-11-02 21:25:51Z]] 18:56:31.343 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 18:56:31.344 [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] 18:56:31.344 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1441936] 18:56:31.344 [debug] Current batch of media processed. Will check again in 1000ms 18:56:32.345 [debug] Current batch of media processed. Will check again in 1000ms 18:56:33.346 [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" => 11, "timestamp" => 1761944297, "title" => "Rust Core Utils Are Breaking Ubuntu", "upload_date" => "20251031"} 18:56:33.347 [debug] QUERY OK source="sources" db=0.2ms idle=1000.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 18:56:33.347 [debug] QUERY OK source="sources" db=0.0ms idle=1000.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:33.348 [debug] QUERY OK source="media_items" db=1.1ms idle=1001.1ms 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] 18:56:33.349 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "ceb11831-4f48-4048-8abb-b6403f9e9780", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", false, "5NeRkZ1A4zY", 45, [], 566, false, 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, false, 98, ~U[2025-10-31 20:58:17Z], ~U[2026-01-01 00:56:33Z], ~U[2026-01-01 00:56:33Z], "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", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "5NeRkZ1A4zY", 45, 566, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, ~U[2025-10-31 20:58:17Z]] 18:56:33.349 [debug] QUERY OK source="sources" db=0.1ms idle=49.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:33.350 [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] 18:56:33.350 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1426243] 18:56:33.350 [debug] Current batch of media processed. Will check again in 1000ms 18:56:34.351 [debug] Current batch of media processed. Will check again in 1000ms 18:56:35.353 [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" => 12, "timestamp" => 1761177602, "title" => "Desktop Linux is Under Attack", "upload_date" => "20251023"} 18:56:35.353 [debug] QUERY OK source="sources" db=0.1ms idle=50.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 18:56:35.354 [debug] QUERY OK source="sources" db=0.0ms idle=7.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:35.355 [debug] QUERY OK source="media_items" db=1.2ms 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-10-23 00:00:02Z], 45] 18:56:35.357 [debug] QUERY OK source="media_items" db=1.8ms idle=8.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "db1eda5d-91cd-47a2-a06a-9aca70b972c2", "https://www.youtube.com/watch?v=D_z_w0m4A3E", false, "D_z_w0m4A3E", 45, [], 545, false, 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, false, 98, ~U[2025-10-23 00:00:02Z], ~U[2026-01-01 00:56:35Z], ~U[2026-01-01 00:56:35Z], "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", "https://www.youtube.com/watch?v=D_z_w0m4A3E", "D_z_w0m4A3E", 45, 545, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, ~U[2025-10-23 00:00:02Z]] 18:56:35.357 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:35.358 [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] 18:56:35.358 [debug] QUERY OK source="media_items" db=0.1ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1357518] 18:56:35.358 [debug] Current batch of media processed. Will check again in 1000ms 18:56:36.359 [debug] Current batch of media processed. Will check again in 1000ms 18:56:37.360 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 509, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", "id" => "PaPotS8GSpc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PaPotS8GSpc", "playlist_index" => 13, "timestamp" => 1759968748, "title" => "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "upload_date" => "20251009"} 18:56:37.361 [debug] QUERY OK source="sources" db=0.1ms idle=53.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 18:56:37.361 [debug] QUERY OK source="sources" db=0.0ms idle=14.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:37.362 [debug] QUERY OK source="media_items" db=1.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[2025-10-09 00:12:28Z], 45] 18:56:37.364 [debug] QUERY OK source="media_items" db=0.8ms idle=16.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "276a8de2-5dc8-443a-83c9-003a1139bb87", "https://www.youtube.com/watch?v=PaPotS8GSpc", false, "PaPotS8GSpc", 45, [], 509, false, 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, false, 98, ~U[2025-10-09 00:12:28Z], ~U[2026-01-01 00:56:37Z], ~U[2026-01-01 00:56:37Z], "In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "https://www.youtube.com/watch?v=PaPotS8GSpc", "PaPotS8GSpc", 45, 509, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, ~U[2025-10-09 00:12:28Z]] 18:56:37.364 [debug] QUERY OK source="sources" db=0.1ms idle=17.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:56:37.364 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 18:56:37.364 [debug] QUERY OK source="media_items" db=0.1ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1250708] 18:56:37.364 [debug] Current batch of media processed. Will check again in 1000ms 18:56:38.365 [debug] Current batch of media processed. Will check again in 1000ms 18:56:39.366 [debug] Current batch of media processed. Will check again in 1000ms 18:56:40.368 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 552, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", "id" => "FgqhzyDsHoE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FgqhzyDsHoE", "playlist_index" => 14, "timestamp" => 1759523151, "title" => "Google's AI Is Banning Innocent User Accounts", "upload_date" => "20251003"} 18:56:40.368 [debug] QUERY OK source="sources" db=0.2ms idle=1021.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 18:56:40.369 [debug] QUERY OK source="sources" db=0.1ms idle=1022.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:40.370 [debug] QUERY OK source="media_items" db=1.1ms idle=1022.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-03 20:25:51Z], 45] 18:56:40.371 [debug] QUERY OK source="media_items" db=0.8ms idle=1023.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "b449e8dd-5e70-4eff-9ffa-002135f71ef9", "https://www.youtube.com/watch?v=FgqhzyDsHoE", false, "FgqhzyDsHoE", 45, [], 552, false, 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, false, 98, ~U[2025-10-03 20:25:51Z], ~U[2026-01-01 00:56:40Z], ~U[2026-01-01 00:56:40Z], "In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "https://www.youtube.com/watch?v=FgqhzyDsHoE", "FgqhzyDsHoE", 45, 552, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, ~U[2025-10-03 20:25:51Z]] 18:56:40.371 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 18:56:40.372 [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] 18:56:40.372 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1210871] 18:56:40.372 [debug] Current batch of media processed. Will check again in 1000ms 18:56:41.373 [debug] Current batch of media processed. Will check again in 1000ms 18:56:42.374 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 632, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", "id" => "LlyGD1nbq0k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LlyGD1nbq0k", "playlist_index" => 15, "timestamp" => 1758912424, "title" => "Smart Appliances Are Showing Ads Now", "upload_date" => "20250926"} 18:56:42.375 [debug] QUERY OK source="sources" db=0.2ms idle=60.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 18:56:42.375 [debug] QUERY OK source="sources" db=0.1ms idle=28.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:42.377 [debug] QUERY OK source="media_items" db=1.2ms idle=29.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-26 18:47:04Z], 45] 18:56:42.378 [debug] QUERY OK source="media_items" db=0.9ms idle=30.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "2df6b92b-1725-45dc-ae3a-bffb6258a9c5", "https://www.youtube.com/watch?v=LlyGD1nbq0k", false, "LlyGD1nbq0k", 45, [], 632, false, 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, false, 98, ~U[2025-09-26 18:47:04Z], ~U[2026-01-01 00:56:42Z], ~U[2026-01-01 00:56:42Z], "In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "https://www.youtube.com/watch?v=LlyGD1nbq0k", "LlyGD1nbq0k", 45, 632, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, ~U[2025-09-26 18:47:04Z]] 18:56:42.378 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:42.378 [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] 18:56:42.379 [debug] QUERY OK source="media_items" db=0.1ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1156167] 18:56:42.379 [debug] Current batch of media processed. Will check again in 1000ms 18:56:43.379 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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" => 950, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", "id" => "zp_qHcQQyz8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zp_qHcQQyz8", "playlist_index" => 16, "timestamp" => 1758410968, "title" => "The FBI Arrested A Major Tor Node Operator", "upload_date" => "20250920"} 18:56:43.380 [debug] QUERY OK source="sources" db=0.2ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 18:56:43.380 [debug] QUERY OK source="sources" db=0.1ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:43.382 [debug] QUERY OK source="media_items" db=1.2ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-20 23:29:28Z], 45] 18:56:43.383 [debug] QUERY OK source="media_items" db=0.8ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "83fb2e60-f5ac-453e-9018-08f3098a4097", "https://www.youtube.com/watch?v=zp_qHcQQyz8", false, "zp_qHcQQyz8", 45, [], 950, false, 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, false, 98, ~U[2025-09-20 23:29:28Z], ~U[2026-01-01 00:56:43Z], ~U[2026-01-01 00:56:43Z], "In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "https://www.youtube.com/watch?v=zp_qHcQQyz8", "zp_qHcQQyz8", 45, 950, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, ~U[2025-09-20 23:29:28Z]] 18:56:43.383 [debug] QUERY OK source="sources" db=0.1ms idle=68.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:56:43.383 [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] 18:56:43.384 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1110923] 18:56:43.384 [debug] Current batch of media processed. Will check again in 1000ms 18:56:44.384 [debug] Current batch of media processed. Will check again in 1000ms 18:56:45.386 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 1144, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", "id" => "dw-z10LNtm0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dw-z10LNtm0", "playlist_index" => 17, "timestamp" => 1758202836, "title" => "Can Tor's Problems Be Fixed?", "upload_date" => "20250918"} 18:56:45.386 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 18:56:45.387 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=40.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:45.389 [debug] QUERY OK source="media_items" db=1.5ms idle=40.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 13:40:36Z], 45] 18:56:45.390 [debug] QUERY OK source="media_items" db=0.7ms idle=42.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "ad19d2c0-26fa-48bc-85ea-acebe7b634bc", "https://www.youtube.com/watch?v=dw-z10LNtm0", false, "dw-z10LNtm0", 45, [], 1144, false, 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, false, 98, ~U[2025-09-18 13:40:36Z], ~U[2026-01-01 00:56:45Z], ~U[2026-01-01 00:56:45Z], "In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "https://www.youtube.com/watch?v=dw-z10LNtm0", "dw-z10LNtm0", 45, 1144, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, ~U[2025-09-18 13:40:36Z]] 18:56:45.390 [debug] QUERY OK source="sources" db=0.1ms idle=43.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:56:45.390 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 18:56:45.391 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1092564] 18:56:45.391 [debug] Current batch of media processed. Will check again in 1000ms 18:56:46.391 [debug] Current batch of media processed. Will check again in 1000ms 18:56:46.998 [info] {"source":"oban","duration":3374,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:56:47.392 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 1047, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", "id" => "QDDkfKPmD8c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QDDkfKPmD8c", "playlist_index" => 18, "timestamp" => 1757634127, "title" => "The Tor Project is Ignoring These Issues", "upload_date" => "20250911"} 18:56:47.393 [debug] QUERY OK source="sources" db=0.2ms idle=394.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 18:56:47.393 [debug] QUERY OK source="sources" db=0.1ms idle=70.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:47.394 [debug] QUERY OK source="media_items" db=1.1ms idle=46.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 23:42:07Z], 45] 18:56:47.396 [debug] QUERY OK source="media_items" db=0.7ms idle=48.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "c5739396-93b4-4bbb-91d7-abece1eed8e3", "https://www.youtube.com/watch?v=QDDkfKPmD8c", false, "QDDkfKPmD8c", 45, [], 1047, false, 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, false, 98, ~U[2025-09-11 23:42:07Z], ~U[2026-01-01 00:56:47Z], ~U[2026-01-01 00:56:47Z], "In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "https://www.youtube.com/watch?v=QDDkfKPmD8c", "QDDkfKPmD8c", 45, 1047, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, ~U[2025-09-11 23:42:07Z]] 18:56:47.396 [debug] QUERY OK source="sources" db=0.1ms idle=49.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:56:47.396 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 18:56:47.396 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1041018] 18:56:47.397 [debug] Current batch of media processed. Will check again in 1000ms 18:56:48.397 [debug] Current batch of media processed. Will check again in 1000ms 18:56:49.398 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 560, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", "id" => "janmJ195nic", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=janmJ195nic", "playlist_index" => 19, "timestamp" => 1757375959, "title" => "CachyOS - The Blazingly Fast Linux Distro", "upload_date" => "20250908"} 18:56:49.399 [debug] QUERY OK source="sources" db=0.1ms idle=72.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 18:56:49.399 [debug] QUERY OK source="sources" db=0.0ms idle=52.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:49.400 [debug] QUERY OK source="media_items" db=1.2ms idle=52.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-08 23:59:19Z], 45] 18:56:49.401 [debug] QUERY OK source="media_items" db=0.7ms idle=54.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "3f599113-0574-44ec-b44e-224fbf729426", "https://www.youtube.com/watch?v=janmJ195nic", false, "janmJ195nic", 45, [], 560, false, 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, false, 98, ~U[2025-09-08 23:59:19Z], ~U[2026-01-01 00:56:49Z], ~U[2026-01-01 00:56:49Z], "In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "https://www.youtube.com/watch?v=janmJ195nic", "janmJ195nic", 45, 560, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, ~U[2025-09-08 23:59:19Z]] 18:56:49.402 [debug] QUERY OK source="sources" db=0.1ms idle=55.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:49.402 [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] 18:56:49.402 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1019161] 18:56:49.402 [debug] Current batch of media processed. Will check again in 1000ms 18:56:50.403 [debug] Current batch of media processed. Will check again in 1000ms 18:56:51.404 [debug] Current batch of media processed. Will check again in 1000ms 18:56:51.605 [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/c5/f9/c5f9a5d0e34df3e9edc8711b7d7db96c60d52032998418cd74e87024a574b290.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/34/e6/34e658353c5ec523f1bd942c7ca4e997e4d4f96a80c4dc4045d8231bb07401ef.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 18:56:51.605 [debug] Gracefully stopping file follower 18:56:51.606 [debug] QUERY OK source="sources" db=0.1ms idle=276.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 18:56:51.606 [debug] QUERY OK source="sources" db=0.1ms idle=259.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:51.607 [debug] QUERY OK source="media_items" db=1.1ms idle=259.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 00:38:26Z], 45] 18:56:51.608 [debug] QUERY OK source="media_items" db=0.7ms idle=261.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "a7452560-ce73-4686-97d3-501b372fb26f", "https://www.youtube.com/watch?v=6GNqGZXHXpo", false, "6GNqGZXHXpo", 45, [], 764, false, 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, false, 98, ~U[2025-12-25 00:38:26Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=6GNqGZXHXpo", "6GNqGZXHXpo", 45, 764, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, ~U[2025-12-25 00:38:26Z]] 18:56:51.609 [debug] QUERY OK source="sources" db=0.1ms idle=262.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.610 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 22:47:57Z], 45] 18:56:51.611 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "8567bd3d-71f8-4deb-9de8-03bd9b3757a7", "https://www.youtube.com/watch?v=ETI5g-dTB7Y", false, "ETI5g-dTB7Y", 45, [], 639, false, 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, false, 98, ~U[2025-12-16 22:47:57Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=ETI5g-dTB7Y", "ETI5g-dTB7Y", 45, 639, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, ~U[2025-12-16 22:47:57Z]] 18:56:51.611 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.612 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 15:25:44Z], 45] 18:56:51.613 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "0db02c4b-fea8-43cb-8a32-73dbc20cba77", "https://www.youtube.com/watch?v=0TLYLvGZUmA", false, "0TLYLvGZUmA", 45, [], 853, false, 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, false, 98, ~U[2025-12-07 15:25:44Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=0TLYLvGZUmA", "0TLYLvGZUmA", 45, 853, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, ~U[2025-12-07 15:25:44Z]] 18:56:51.613 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.614 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 15:22:07Z], 45] 18:56:51.615 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "58d21a5e-9316-4297-a4cd-7a2ccd4c55f5", "https://www.youtube.com/watch?v=W6CVxpMBmOo", false, "W6CVxpMBmOo", 45, [], 949, false, 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, false, 98, ~U[2025-12-04 15:22:07Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=W6CVxpMBmOo", "W6CVxpMBmOo", 45, 949, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, ~U[2025-12-04 15:22:07Z]] 18:56:51.616 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.617 [debug] QUERY OK source="media_items" db=0.9ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:20:25Z], 45] 18:56:51.618 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "f2d5315e-007b-4073-8649-b5f6d95d4cfe", "https://www.youtube.com/watch?v=3MwJbRq3-rM", false, "3MwJbRq3-rM", 45, [], 525, false, 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, false, 98, ~U[2025-11-27 15:20:25Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=3MwJbRq3-rM", "3MwJbRq3-rM", 45, 525, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, ~U[2025-11-27 15:20:25Z]] 18:56:51.618 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.619 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-22 00:08:55Z], 45] 18:56:51.620 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "e7a2cf08-98f8-45f5-ae96-67f332416261", "https://www.youtube.com/watch?v=qEkiSBxLjUU", false, "qEkiSBxLjUU", 45, [], 578, false, 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, false, 98, ~U[2025-11-22 00:08:55Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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)", "https://www.youtube.com/watch?v=qEkiSBxLjUU", "qEkiSBxLjUU", 45, 578, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, ~U[2025-11-22 00:08:55Z]] 18:56:51.621 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.622 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-18 15:54:19Z], 45] 18:56:51.623 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "33bf6501-0b91-4b4d-839f-70feb6afaa24", "https://www.youtube.com/watch?v=m_Mr4bw8Pow", false, "m_Mr4bw8Pow", 45, [], 549, false, 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, false, 98, ~U[2025-11-18 15:54:19Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=m_Mr4bw8Pow", "m_Mr4bw8Pow", 45, 549, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, ~U[2025-11-18 15:54:19Z]] 18:56:51.623 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.624 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-14 19:39:30Z], 45] 18:56:51.625 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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?", "5dea7612-764c-4c11-8d04-dbaf3f367dff", "https://www.youtube.com/watch?v=5Wv1FlUeeME", false, "5Wv1FlUeeME", 45, [], 567, false, 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, false, 98, ~U[2025-11-14 19:39:30Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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?", "https://www.youtube.com/watch?v=5Wv1FlUeeME", "5Wv1FlUeeME", 45, 567, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, ~U[2025-11-14 19:39:30Z]] 18:56:51.626 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.627 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-08 20:20:31Z], 45] 18:56:51.629 [debug] QUERY OK source="media_items" db=2.2ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "be1c6240-b530-4ac5-ad0f-877bbeff8d68", "https://www.youtube.com/watch?v=c8Phszco8TY", false, "c8Phszco8TY", 45, [], 574, false, 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, false, 98, ~U[2025-11-08 20:20:31Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=c8Phszco8TY", "c8Phszco8TY", 45, 574, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, ~U[2025-11-08 20:20:31Z]] 18:56:51.630 [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" = ?) [45] 18:56:51.631 [debug] QUERY OK source="media_items" db=0.9ms 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[2025-11-02 21:25:51Z], 45] 18:56:51.632 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "be4baf8b-6ca5-4c56-8f04-e610c86a5266", "https://www.youtube.com/watch?v=A9h2npIn8RQ", false, "A9h2npIn8RQ", 45, [], 693, false, 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, false, 98, ~U[2025-11-02 21:25:51Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=A9h2npIn8RQ", "A9h2npIn8RQ", 45, 693, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, ~U[2025-11-02 21:25:51Z]] 18:56:51.632 [debug] QUERY OK source="sources" db=0.2ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.633 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 20:58:17Z], 45] 18:56:51.634 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "e4bb3a6c-50e5-49db-8f27-72ec0d3ab18e", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", false, "5NeRkZ1A4zY", 45, [], 566, false, 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, false, 98, ~U[2025-10-31 20:58:17Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "5NeRkZ1A4zY", 45, 566, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, ~U[2025-10-31 20:58:17Z]] 18:56:51.635 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.636 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 00:00:02Z], 45] 18:56:51.637 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "afc10a31-80f0-4b5f-bcaa-0f01b5f924c0", "https://www.youtube.com/watch?v=D_z_w0m4A3E", false, "D_z_w0m4A3E", 45, [], 545, false, 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, false, 98, ~U[2025-10-23 00:00:02Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "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", "https://www.youtube.com/watch?v=D_z_w0m4A3E", "D_z_w0m4A3E", 45, 545, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, ~U[2025-10-23 00:00:02Z]] 18:56:51.637 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.638 [debug] QUERY OK source="media_items" db=0.9ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 00:12:28Z], 45] 18:56:51.639 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "fad2a221-ed9d-4483-8037-d80a0f47a1af", "https://www.youtube.com/watch?v=PaPotS8GSpc", false, "PaPotS8GSpc", 45, [], 509, false, 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, false, 98, ~U[2025-10-09 00:12:28Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "https://www.youtube.com/watch?v=PaPotS8GSpc", "PaPotS8GSpc", 45, 509, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, ~U[2025-10-09 00:12:28Z]] 18:56:51.639 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.640 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-03 20:25:51Z], 45] 18:56:51.641 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "db9793e9-2b0e-4468-b3fe-3fbc5317c499", "https://www.youtube.com/watch?v=FgqhzyDsHoE", false, "FgqhzyDsHoE", 45, [], 552, false, 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, false, 98, ~U[2025-10-03 20:25:51Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "https://www.youtube.com/watch?v=FgqhzyDsHoE", "FgqhzyDsHoE", 45, 552, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, ~U[2025-10-03 20:25:51Z]] 18:56:51.642 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.643 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-26 18:47:04Z], 45] 18:56:51.643 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "12da89e1-e62b-4a98-8bd0-9a9052bd7413", "https://www.youtube.com/watch?v=LlyGD1nbq0k", false, "LlyGD1nbq0k", 45, [], 632, false, 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, false, 98, ~U[2025-09-26 18:47:04Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "https://www.youtube.com/watch?v=LlyGD1nbq0k", "LlyGD1nbq0k", 45, 632, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, ~U[2025-09-26 18:47:04Z]] 18:56:51.644 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.645 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-20 23:29:28Z], 45] 18:56:51.659 [debug] QUERY OK source="media_items" db=13.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "8b9238a5-e37e-45a2-8d6f-801dd9636250", "https://www.youtube.com/watch?v=zp_qHcQQyz8", false, "zp_qHcQQyz8", 45, [], 950, false, 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, false, 98, ~U[2025-09-20 23:29:28Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "https://www.youtube.com/watch?v=zp_qHcQQyz8", "zp_qHcQQyz8", 45, 950, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, ~U[2025-09-20 23:29:28Z]] 18:56:51.660 [debug] QUERY OK source="sources" db=0.3ms idle=16.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:56:51.661 [debug] QUERY OK source="media_items" db=1.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[2025-09-18 13:40:36Z], 45] 18:56:51.666 [debug] QUERY OK source="media_items" db=4.2ms idle=17.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "a14742ed-4d1c-4868-93e9-301e267f4805", "https://www.youtube.com/watch?v=dw-z10LNtm0", false, "dw-z10LNtm0", 45, [], 1144, false, 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, false, 98, ~U[2025-09-18 13:40:36Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "https://www.youtube.com/watch?v=dw-z10LNtm0", "dw-z10LNtm0", 45, 1144, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, ~U[2025-09-18 13:40:36Z]] 18:56:51.666 [debug] QUERY OK source="sources" db=0.2ms idle=20.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.667 [debug] QUERY OK source="media_items" db=1.1ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 23:42:07Z], 45] 18:56:51.673 [debug] QUERY OK source="media_items" db=5.1ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "ca4f2997-6f7a-4a9e-a3a3-43f23aebaa6d", "https://www.youtube.com/watch?v=QDDkfKPmD8c", false, "QDDkfKPmD8c", 45, [], 1047, false, 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, false, 98, ~U[2025-09-11 23:42:07Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "https://www.youtube.com/watch?v=QDDkfKPmD8c", "QDDkfKPmD8c", 45, 1047, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, ~U[2025-09-11 23:42:07Z]] 18:56:51.673 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [45] 18:56:51.674 [debug] QUERY OK source="media_items" db=1.0ms 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[2025-09-08 23:59:19Z], 45] 18:56:51.675 [debug] QUERY OK source="media_items" db=0.6ms idle=8.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "6797a4fd-5e1c-40a4-9bed-1cd8d8fd769e", "https://www.youtube.com/watch?v=janmJ195nic", false, "janmJ195nic", 45, [], 560, false, 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, false, 98, ~U[2025-09-08 23:59:19Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "https://www.youtube.com/watch?v=janmJ195nic", "janmJ195nic", 45, 560, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, ~U[2025-09-08 23:59:19Z]] 18:56:51.676 [debug] QUERY OK source="sources" db=0.2ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 18:56:51.677 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-29 00:28:31Z], 45] 18:56:51.678 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how Google is restricting peoples ability to side load applications on their devices, and closing down the once open software ecosystem that was android, making it more similar to Apples \"walled garden\"\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google is Locking Down Android", "1795468a-446d-4ab4-877f-7ef21feb8787", "https://www.youtube.com/watch?v=L1S0SiBuJN8", false, "L1S0SiBuJN8", 45, [], 537, false, 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e082900_Google is Locking Down Android.mp4", false, false, 98, ~U[2025-08-29 00:28:31Z], ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], "In this video I discuss how Google is restricting peoples ability to side load applications on their devices, and closing down the once open software ecosystem that was android, making it more similar to Apples \"walled garden\"\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google is Locking Down Android", "https://www.youtube.com/watch?v=L1S0SiBuJN8", "L1S0SiBuJN8", 45, 537, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e082900_Google is Locking Down Android.mp4", false, ~U[2025-08-29 00:28:31Z]] 18:56:51.678 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z], 45] 18:56:51.679 [debug] QUERY OK source="media_items" db=1.0ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 18:56:51.680 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [45] 18:56:51.681 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 18:56:51.681 [debug] QUERY OK source="tasks" db=0.2ms idle=2.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88134, 45, ~U[2026-01-01 00:56:51Z], ~U[2026-01-01 00:56:51Z]] 18:56:51.682 [info] {"args":{"id":45},"id":88121,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":43413015,"event":"job:stop","queue_time":478076,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 18:57:00.811 [info] {"source":"oban","duration":302,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:57:17.002 [info] {"source":"oban","duration":3765,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:57:47.007 [info] {"source":"oban","duration":3950,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 18:58:00.812 [info] {"source":"oban","duration":664,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:58:16.476 [info] {"args":{"id":1306745},"id":88095,"meta":{},"system_time":1767229096476636999,"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"]} 18:58:16.477 [debug] QUERY OK source="media_items" db=0.1ms idle=130.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" = ?) [1306745] 18:58:16.477 [info] User scripts lifecyle file either not present or is empty. Skipping. 18:58:16.477 [debug] QUERY OK source="sources" db=0.3ms idle=130.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:58:16.477 [debug] QUERY OK source="media_profiles" db=0.1ms idle=130.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] 18:58:16.478 [debug] QUERY OK source="media_items" db=0.2ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1306745] 18:58:16.479 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1306745] 18:58:16.479 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 18:58:16.479 [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 [] 18:58:16.479 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:16.479 [debug] Running yt-dlp command for action: get_downloadable_status 18:58:16.480 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:16.480 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:16.480 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:16.481 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yNOEB0BpO7E --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fa/4f/fa4f6daeaff93c8a503bed836c2ba5c164b178388795350681794e200f76b1c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 18:58:17.011 [info] {"source":"oban","duration":3351,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:58:18.713 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yNOEB0BpO7E --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fa/4f/fa4f6daeaff93c8a503bed836c2ba5c164b178388795350681794e200f76b1c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] yNOEB0BpO7E: Join this channel to get access to members-only content like this video, and other exclusive perks. 18:58:18.713 [error] yt-dlp download error for media item #1306745: "ERROR: [youtube] yNOEB0BpO7E: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 18:58:18.713 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1306745},"id":88095,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2236713,"event":"job:exception","queue_time":993355,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 18:58:19.484 [info] {"args":{"id":1012072},"id":88093,"meta":{},"system_time":1767229099484495801,"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"]} 18:58:19.484 [debug] QUERY OK source="media_items" db=0.2ms idle=1011.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" = ?) [1012072] 18:58:19.485 [info] User scripts lifecyle file either not present or is empty. Skipping. 18:58:19.485 [debug] QUERY OK source="sources" db=0.2ms idle=771.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:58:19.485 [debug] QUERY OK source="media_profiles" db=0.1ms idle=765.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] 18:58:19.486 [debug] QUERY OK source="media_items" db=0.2ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012072] 18:58:19.488 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012072] 18:58:19.488 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 18:58:19.488 [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 [] 18:58:19.488 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:19.489 [debug] Running yt-dlp command for action: get_downloadable_status 18:58:19.490 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:19.490 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:58:19.490 [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 [] 18:58:19.490 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=7fowHwCZcIU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/73/ab/73ab59371f4529118f16d6fb48fd85cc836c8e753931b072e067e61fbd6aed64.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 18:58:21.725 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=7fowHwCZcIU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/73/ab/73ab59371f4529118f16d6fb48fd85cc836c8e753931b072e067e61fbd6aed64.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 7fowHwCZcIU: Join this channel to get access to members-only content like this video, and other exclusive perks. 18:58:21.725 [error] yt-dlp download error for media item #1012072: "ERROR: [youtube] 7fowHwCZcIU: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 18:58:21.726 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012072},"id":88093,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2241156,"event":"job:exception","queue_time":1007272,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 18:58:47.016 [info] {"source":"oban","duration":3670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:59:00.812 [info] {"source":"oban","duration":275,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 18:59:17.021 [info] {"source":"oban","duration":3926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:59:35.605 [info] {"args":{"id":51},"id":88133,"meta":{},"system_time":1767229175605297668,"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"]} 18:59:35.605 [debug] QUERY OK source="sources" db=0.1ms idle=1258.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 18:59:35.605 [debug] QUERY OK source="settings" db=0.1ms idle=1007.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:59:35.606 [debug] QUERY OK source="media_profiles" db=0.3ms idle=259.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] 18:59:35.606 [debug] QUERY OK source="settings" db=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 [] 18:59:35.606 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 18:59:35.926 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 18:59:35.926 [debug] QUERY OK source="media_items" db=0.3ms idle=320.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 18:59:35.927 [debug] QUERY OK source="media_items" db=0.3ms idle=321.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] 18:59:35.928 [debug] QUERY OK source="tasks" db=0.1ms idle=321.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88135, 51, ~U[2026-01-01 00:59:35Z], ~U[2026-01-01 00:59:35Z]] 18:59:35.928 [info] {"args":{"id":51},"id":88133,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":323365,"event":"job:stop","queue_time":557205,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 18:59:47.027 [info] {"source":"oban","duration":4263,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:00.815 [info] {"source":"oban","duration":1447,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[88136]} 19:00:00.821 [info] {"args":{},"id":88136,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"system_time":1767229200821406737,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","local_data"]} 19:00:00.841 [debug] QUERY OK source="media_items" db=19.5ms idle=1182.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" WHERE ((NOT (m0."media_filepath" IS NULL) AND IFNULL(retention_period_days, 0) > 0 AND DATETIME(media_downloaded_at, '+' || retention_period_days || ' day') < DATETIME('now') ) AND NOT (m0."prevent_culling" = 1)) [] 19:00:00.841 [info] Culling 4 media items past their retention date 19:00:00.841 [debug] QUERY OK source="tasks" db=0.2ms idle=495.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."media_item_id" = ?) AND (o1."state" IN (?,?,?,?,?,?,?)) [1644246, "scheduled", "available", "executing", "retryable", "completed", "discarded", "cancelled"] 19:00:00.886 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:00:00.887 [debug] QUERY OK source="media_items" db=0.6ms idle=246.9ms UPDATE "media_items" SET "metadata_filepath" = ?, "thumbnail_filepath" = ?, "culled_at" = ?, "nfo_filepath" = ?, "prevent_download" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [nil, nil, ~U[2026-01-01 01:00:00Z], nil, true, nil, ~U[2026-01-01 01:00:00Z], 1644246] 19:00:00.887 [debug] QUERY OK source="tasks" db=0.1ms idle=72.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."media_item_id" = ?) AND (o1."state" IN (?,?,?,?,?,?,?)) [1651529, "scheduled", "available", "executing", "retryable", "completed", "discarded", "cancelled"] 19:00:00.938 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:00:00.941 [debug] QUERY OK source="media_items" db=2.4ms idle=117.6ms UPDATE "media_items" SET "metadata_filepath" = ?, "thumbnail_filepath" = ?, "culled_at" = ?, "nfo_filepath" = ?, "prevent_download" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [nil, nil, ~U[2026-01-01 01:00:00Z], nil, true, nil, ~U[2026-01-01 01:00:00Z], 1651529] 19:00:00.944 [debug] QUERY OK source="tasks" db=2.7ms idle=100.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."media_item_id" = ?) AND (o1."state" IN (?,?,?,?,?,?,?)) [1653876, "scheduled", "available", "executing", "retryable", "completed", "discarded", "cancelled"] 19:00:00.982 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:00:00.984 [debug] QUERY OK source="media_items" db=1.0ms idle=141.1ms UPDATE "media_items" SET "metadata_filepath" = ?, "thumbnail_filepath" = ?, "culled_at" = ?, "nfo_filepath" = ?, "prevent_download" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [nil, nil, ~U[2026-01-01 01:00:00Z], nil, true, nil, ~U[2026-01-01 01:00:00Z], 1653876] 19:00:00.984 [debug] QUERY OK source="tasks" db=0.1ms idle=96.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."media_item_id" = ?) AND (o1."state" IN (?,?,?,?,?,?,?)) [1664260, "scheduled", "available", "executing", "retryable", "completed", "discarded", "cancelled"] 19:00:01.004 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:00:01.005 [debug] QUERY OK source="media_items" db=1.3ms idle=116.5ms UPDATE "media_items" SET "metadata_filepath" = ?, "thumbnail_filepath" = ?, "culled_at" = ?, "nfo_filepath" = ?, "prevent_download" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [nil, nil, ~U[2026-01-01 01:00:00Z], nil, true, nil, ~U[2026-01-01 01:00:01Z], 1664260] 19:00:01.024 [debug] QUERY OK source="media_items" db=18.9ms idle=64.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND NOT ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND NOT (m0."prevent_culling" = 1)) [] 19:00:01.025 [info] Deleting 0 media items that are from before the source cutoff 19:00:01.025 [info] {"args":{},"id":88136,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","duration":203701,"event":"job:stop","queue_time":820467,"attempt":1,"tags":["media_item","local_data"]} 19:00:17.031 [info] {"source":"oban","duration":4094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:41.720 [info] {"args":{"id":1611698},"id":87985,"meta":{},"system_time":1767229241720404933,"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"]} 19:00:41.721 [debug] QUERY OK source="media_items" db=0.4ms idle=1374.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" = ?) [1611698] 19:00:41.721 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:00:41.721 [debug] QUERY OK source="sources" db=0.1ms idle=1374.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:00:41.721 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 19:00:41.722 [debug] QUERY OK source="media_items" db=0.1ms idle=8.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1611698] 19:00:41.723 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1611698] 19:00:41.723 [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] 19:00:41.724 [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 [] 19:00:41.724 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:41.724 [debug] Running yt-dlp command for action: get_downloadable_status 19:00:41.725 [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 [] 19:00:41.725 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:41.725 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:41.725 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tcIvHlGaQII --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/1f/d41f36e0c7cfe2ba6343cdcfc04fa8f17fadce93c7e89146cefe732cc7152cb9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:00:43.733 [info] GET /sources 19:00:43.733 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 19:00:43.733 [debug] QUERY OK source="settings" db=0.1ms idle=386.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:43.733 [debug] QUERY OK source="settings" db=0.0ms idle=387.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:43.734 [debug] QUERY OK source="settings" db=0.0ms idle=387.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:43.734 [debug] QUERY OK source="settings" db=0.0ms idle=387.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:43.734 [debug] QUERY OK source="settings" db=0.0ms idle=17.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:43.771 [debug] QUERY OK source="sources" db=36.2ms queue=0.1ms idle=1.3ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 19:00:43.802 [debug] QUERY OK source="sources" db=30.3ms queue=0.3ms 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", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 19:00:43.804 [info] Sent 200 in 71ms 19:00:44.018 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tcIvHlGaQII --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/1f/d41f36e0c7cfe2ba6343cdcfc04fa8f17fadce93c7e89146cefe732cc7152cb9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] tcIvHlGaQII: Join this channel to get access to members-only content like this video, and other exclusive perks. 19:00:44.018 [error] yt-dlp download error for media item #1611698: "ERROR: [youtube] tcIvHlGaQII: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 19:00:44.019 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1611698},"id":87985,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2298678,"event":"job:exception","queue_time":621091,"attempt":15,"tags":["media_item","media_fetching","show_in_dashboard"]} 19:00:44.233 [info] GET /settings 19:00:44.233 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 19:00:44.234 [debug] QUERY OK source="settings" db=0.2ms idle=499.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:44.237 [debug] QUERY OK source="settings" db=2.9ms idle=463.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:44.240 [debug] QUERY OK source="settings" db=2.8ms idle=434.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:44.240 [debug] QUERY OK source="settings" db=0.0ms idle=221.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:44.241 [info] Sent 200 in 8ms 19:00:47.036 [info] {"source":"oban","duration":4282,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:50.736 [info] {"args":{"id":1012090},"id":88094,"meta":{},"system_time":1767229250736272672,"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"]} 19:00:50.736 [debug] QUERY OK source="media_items" db=0.1ms idle=1389.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" = ?) [1012090] 19:00:50.736 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:00:50.737 [debug] QUERY OK source="sources" db=0.3ms idle=1008.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:00:50.737 [debug] QUERY OK source="media_profiles" db=0.1ms idle=390.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] 19:00:50.737 [debug] QUERY OK source="media_items" db=0.1ms idle=7.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012090] 19:00:50.739 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012090] 19:00:50.739 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:00:50.739 [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 [] 19:00:50.739 [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 [] 19:00:50.739 [debug] Running yt-dlp command for action: get_downloadable_status 19:00:50.740 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:50.740 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:50.740 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:00:50.740 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=a04GSWWHBEM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/32/8c/328cf0953bb719bced9991ed269211437f58afd6b369455784da7869ee422afd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:00:52.988 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=a04GSWWHBEM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/32/8c/328cf0953bb719bced9991ed269211437f58afd6b369455784da7869ee422afd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] a04GSWWHBEM: Join this channel to get access to members-only content like this video, and other exclusive perks. 19:00:52.988 [error] yt-dlp download error for media item #1012090: "ERROR: [youtube] a04GSWWHBEM: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 19:00:52.989 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012090},"id":88094,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2252811,"event":"job:exception","queue_time":503364,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 19:01:00.668 [info] GET /media_profiles 19:01:00.668 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 19:01:00.669 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=920.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", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 19:01:00.669 [debug] QUERY OK source="settings" db=0.0ms idle=322.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.669 [debug] QUERY OK source="settings" db=0.0ms idle=322.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.669 [debug] QUERY OK source="settings" db=0.0ms idle=323.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.670 [info] Sent 200 in 1ms 19:01:00.815 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:01:00.820 [info] GET /app_info 19:01:00.820 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 19:01:00.821 [debug] QUERY OK source="settings" db=0.1ms idle=151.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.821 [debug] QUERY OK source="settings" db=0.0ms idle=151.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.821 [debug] QUERY OK source="settings" db=0.0ms idle=151.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.821 [debug] QUERY OK source="settings" db=0.0ms idle=71.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.822 [debug] QUERY OK source="settings" db=0.0ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:00.822 [info] Sent 200 in 1ms 19:01:17.040 [info] {"source":"oban","duration":3250,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:36.550 [info] GET /sources/35 19:01:36.550 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "35"} Pipelines: [:browser] 19:01:36.550 [debug] QUERY OK source="sources" db=0.1ms idle=746.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:01:36.550 [debug] QUERY OK source="media_profiles" db=0.1ms idle=203.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] 19:01:36.730 [info] GET /sources/52 19:01:36.730 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "52"} Pipelines: [:browser] 19:01:36.730 [debug] QUERY OK source="sources" db=0.1ms idle=383.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:01:36.731 [debug] QUERY OK source="media_profiles" db=0.1ms idle=384.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] 19:01:36.731 [debug] QUERY OK source="tasks" db=180.7ms idle=204.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 (?,?,?,?)) [35, "executing", "available", "scheduled", "retryable"] 19:01:36.731 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=180.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" = ?) [88124] 19:01:36.732 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:36.732 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:36.732 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:36.733 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:01:36.736 [debug] QUERY OK source="media_items" db=2.5ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:01:36.738 [debug] QUERY OK source="media_items" db=2.5ms idle=3.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 ? [35, 10, 0] 19:01:36.739 [debug] QUERY OK source="sources" db=0.1ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:01:36.739 [debug] QUERY OK source="media_items" db=0.2ms idle=5.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 19:01:36.739 [debug] QUERY OK source="media_items" db=0.4ms 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 ? [35, 10, 0] 19:01:36.740 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:01:36.742 [debug] QUERY OK source="media_items" db=2.3ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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"))))) [35] 19:01:36.745 [debug] QUERY OK source="media_items" db=2.5ms idle=3.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [35, 10, 0] 19:01:36.746 [info] Sent 200 in 196ms 19:01:36.921 [debug] QUERY OK source="tasks" db=190.3ms idle=180.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"] 19:01:36.922 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=181.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 (?,?)) [84903, 74384] 19:01:36.922 [debug] QUERY OK source="settings" db=0.1ms idle=179.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:36.922 [debug] QUERY OK source="settings" db=0.0ms idle=176.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:36.922 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:36.923 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 19:01:36.924 [debug] QUERY OK source="media_items" db=0.2ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [52] 19:01:36.924 [debug] QUERY OK source="media_items" db=0.3ms 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 ? [52, 10, 0] 19:01:36.925 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 19:01:36.925 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [52] 19:01:36.925 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [52, 10, 0] 19:01:36.926 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 19:01:36.926 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:01:36.926 [debug] QUERY OK source="media_items" db=0.3ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:01:36.927 [info] Sent 200 in 197ms 19:01:47.045 [info] {"source":"oban","duration":3534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:49.648 [info] GET /sources/43 19:01:49.648 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "43"} Pipelines: [:browser] 19:01:49.649 [debug] QUERY OK source="sources" db=0.2ms idle=1302.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:01:49.649 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1302.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] 19:01:49.674 [debug] QUERY OK source="tasks" db=24.5ms idle=1303.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 (?,?,?,?)) [43, "executing", "available", "scheduled", "retryable"] 19:01:49.674 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1327.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" = ?) [88130] 19:01:49.674 [debug] QUERY OK source="settings" db=0.1ms idle=729.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:49.675 [debug] QUERY OK source="settings" db=0.0ms idle=25.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:49.675 [debug] QUERY OK source="settings" db=0.0ms 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 [] 19:01:49.676 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:01:49.679 [debug] QUERY OK source="media_items" db=2.9ms idle=2.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [43] 19:01:49.682 [debug] QUERY OK source="media_items" db=2.9ms idle=4.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [43, 10, 0] 19:01:49.683 [debug] QUERY OK source="sources" db=0.1ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:01:49.683 [debug] QUERY OK source="media_items" db=0.1ms idle=8.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 19:01:49.685 [debug] QUERY OK source="media_items" db=1.5ms idle=7.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 ? [43, 10, 0] 19:01:49.685 [debug] QUERY OK source="sources" db=0.0ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:01:49.686 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:01:49.689 [debug] QUERY OK source="media_items" db=2.9ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:01:49.690 [info] Sent 200 in 41ms 19:01:49.833 [info] GET /sources/37 19:01:49.833 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "37"} Pipelines: [:browser] 19:01:49.834 [debug] QUERY OK source="sources" db=0.1ms idle=150.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:01:49.834 [debug] QUERY OK source="media_profiles" db=0.1ms idle=148.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] 19:01:49.842 [debug] QUERY OK source="tasks" db=7.8ms idle=148.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [37, "executing", "available", "scheduled", "retryable"] 19:01:49.842 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=155.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" = ?) [88123] 19:01:49.842 [debug] QUERY OK source="settings" db=0.0ms idle=153.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:49.842 [debug] QUERY OK source="settings" db=0.0ms idle=8.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:49.843 [debug] QUERY OK source="settings" db=0.0ms idle=8.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:49.844 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:01:49.846 [debug] QUERY OK source="media_items" db=1.9ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [37] 19:01:49.848 [debug] QUERY OK source="media_items" db=1.9ms 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 ? [37, 10, 0] 19:01:49.849 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [37] 19:01:49.849 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 19:01:49.851 [debug] QUERY OK source="media_items" db=1.6ms idle=5.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 ? [37, 10, 0] 19:01:49.851 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [37] 19:01:49.852 [debug] QUERY OK source="media_items" db=0.7ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:01:49.855 [debug] QUERY OK source="media_items" db=2.1ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:01:49.856 [info] Sent 200 in 22ms 19:02:00.817 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:02:17.048 [info] {"source":"oban","duration":3201,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:02:35.033 [info] {"args":{"id":37},"id":88123,"meta":{},"system_time":1767229355033687015,"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"]} 19:02:35.034 [debug] QUERY OK source="sources" db=0.1ms idle=1008.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:35.035 [debug] QUERY OK source="settings" db=1.4ms idle=687.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:35.038 [debug] QUERY OK source="media_items" db=2.7ms idle=689.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")))) [37] 19:02:35.038 [debug] QUERY OK source="media_items" db=0.2ms idle=11.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 19:02:35.039 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:02:35.039 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:35.039 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:35.042 [debug] QUERY OK source="media_items" db=1.4ms 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] 19:02:35.043 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:02:35.043 [debug] Current batch of media processed. Will check again in 1000ms 19:02:35.043 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:35.043 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:35.043 [debug] QUERY OK source="settings" db=0.0ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:35.043 [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/23/45/23455ac5dbefad66a61e79cf139407a8ec0b20dec062ee0a8155ca72a515db85.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/73/8e/738e2ad88e10d0b5ef9c0229d33ea4292b4528fc6993e84825779f96c8f83d9e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:02:36.044 [debug] Current batch of media processed. Will check again in 1000ms 19:02:37.045 [debug] Current batch of media processed. Will check again in 1000ms 19:02:38.046 [debug] Current batch of media processed. Will check again in 1000ms 19:02:39.047 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 4028, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", "id" => "5Hs4Ikwphe0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5Hs4Ikwphe0", "playlist_index" => 1, "timestamp" => 1767182410, "title" => "We gave $50,000 to OSS! Merry Christmas | The Standup", "upload_date" => "20251231"} 19:02:39.048 [debug] QUERY OK source="sources" db=0.1ms idle=701.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:39.048 [debug] QUERY OK source="sources" db=0.1ms idle=701.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:39.050 [debug] QUERY OK source="media_items" db=1.8ms idle=701.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-31 12:00:10Z], 37] 19:02:39.051 [debug] QUERY OK source="media_items" db=0.7ms idle=704.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "58794a05-bc23-49ce-a52d-d09d9ce500f3", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", false, "5Hs4Ikwphe0", 37, [], 4028, false, 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, false, 98, ~U[2025-12-31 12:00:10Z], ~U[2026-01-01 01:02:39Z], ~U[2026-01-01 01:02:39Z], "Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", "5Hs4Ikwphe0", 37, 4028, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, ~U[2025-12-31 12:00:10Z]] 19:02:39.052 [debug] QUERY OK source="sources" db=0.3ms idle=18.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:02:39.052 [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] 19:02:39.052 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1906392] 19:02:39.052 [debug] Current batch of media processed. Will check again in 1000ms 19:02:40.053 [debug] Current batch of media processed. Will check again in 1000ms 19:02:41.055 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "", "duration" => 359, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", "id" => "GwJrZBe8JX4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GwJrZBe8JX4", "playlist_index" => 2, "timestamp" => 1767013145, "title" => "They did what to SQL?", "upload_date" => "20251229"} 19:02:41.055 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=708.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:41.056 [debug] QUERY OK source="sources" db=0.0ms idle=709.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:41.058 [debug] QUERY OK source="media_items" db=1.9ms idle=709.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-29 12:59:05Z], 37] 19:02:41.058 [debug] QUERY OK source="media_items" db=0.4ms idle=711.7ms INSERT INTO "media_items" AS m0 ("title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["They did what to SQL?", "bca07a5f-696e-4b59-8b95-1fd188669e22", "https://www.youtube.com/watch?v=GwJrZBe8JX4", false, "GwJrZBe8JX4", 37, [], 359, false, 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, false, 98, ~U[2025-12-29 12:59:05Z], ~U[2026-01-01 01:02:41Z], ~U[2026-01-01 01:02:41Z], "", "They did what to SQL?", "https://www.youtube.com/watch?v=GwJrZBe8JX4", "GwJrZBe8JX4", 37, 359, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, ~U[2025-12-29 12:59:05Z]] 19:02:41.059 [debug] QUERY OK source="sources" db=0.1ms idle=21.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:02:41.059 [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] 19:02:41.059 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1890515] 19:02:41.059 [debug] Current batch of media processed. Will check again in 1000ms 19:02:42.061 [debug] Current batch of media processed. Will check again in 1000ms 19:02:43.061 [debug] Current batch of media processed. Will check again in 1000ms 19:02:44.062 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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" => 562, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", "id" => "fP5URbP30j0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fP5URbP30j0", "playlist_index" => 3, "timestamp" => 1766840490, "title" => "\"AI Can’t Replace Juniors\" - AWS CEO", "upload_date" => "20251227"} 19:02:44.063 [debug] QUERY OK source="sources" db=0.2ms idle=1716.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:44.063 [debug] QUERY OK source="sources" db=0.0ms idle=1717.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:44.065 [debug] QUERY OK source="media_items" db=1.9ms idle=1717.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-27 13:01:30Z], 37] 19:02:44.066 [debug] QUERY OK source="media_items" db=0.7ms idle=1023.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "41c3000c-8d2a-4372-8239-9f4d2cab844e", "https://www.youtube.com/watch?v=fP5URbP30j0", false, "fP5URbP30j0", 37, [], 562, false, 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, false, 98, ~U[2025-12-27 13:01:30Z], ~U[2026-01-01 01:02:44Z], ~U[2026-01-01 01:02:44Z], "check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "https://www.youtube.com/watch?v=fP5URbP30j0", "fP5URbP30j0", 37, 562, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, ~U[2025-12-27 13:01:30Z]] 19:02:44.067 [debug] QUERY OK source="sources" db=0.1ms idle=23.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:02:44.067 [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] 19:02:44.067 [debug] QUERY OK source="media_items" db=0.1ms 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 [1874638] 19:02:44.067 [debug] Current batch of media processed. Will check again in 1000ms 19:02:45.068 [debug] Current batch of media processed. Will check again in 1000ms 19:02:46.069 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\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" => 583, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", "id" => "qGH8gKdpZMQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qGH8gKdpZMQ", "playlist_index" => 4, "timestamp" => 1766667715, "title" => "Bubblesort is useless", "upload_date" => "20251225"} 19:02:46.070 [debug] QUERY OK source="sources" db=0.1ms idle=723.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:46.070 [debug] QUERY OK source="sources" db=0.0ms idle=723.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:46.072 [debug] QUERY OK source="media_items" db=2.0ms idle=724.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 13:01:55Z], 37] 19:02:46.073 [debug] QUERY OK source="media_items" db=0.6ms idle=726.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "889e093a-e309-4d08-8e58-741ef6bf9e53", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", false, "qGH8gKdpZMQ", 37, [], 583, false, 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, false, 98, ~U[2025-12-25 13:01:55Z], ~U[2026-01-01 01:02:46Z], ~U[2026-01-01 01:02:46Z], "check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", "qGH8gKdpZMQ", 37, 583, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, ~U[2025-12-25 13:01:55Z]] 19:02:46.073 [debug] QUERY OK source="sources" db=0.1ms idle=27.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:02:46.074 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:02:46.074 [debug] QUERY OK source="media_items" db=0.1ms 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 [1858870] 19:02:46.074 [debug] Current batch of media processed. Will check again in 1000ms 19:02:47.052 [info] {"source":"oban","duration":3522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:02:47.075 [debug] Current batch of media processed. Will check again in 1000ms 19:02:48.077 [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" => 422, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", "id" => "GOjMPl0stfg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GOjMPl0stfg", "playlist_index" => 5, "timestamp" => 1766494837, "title" => "Open Source won an Emmy", "upload_date" => "20251223"} 19:02:48.077 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1024.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:48.078 [debug] QUERY OK source="sources" db=0.0ms idle=731.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:48.080 [debug] QUERY OK source="media_items" db=1.9ms idle=731.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 13:00:37Z], 37] 19:02:48.081 [debug] QUERY OK source="media_items" db=0.6ms idle=733.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "Open Source won an Emmy", "6230e026-7133-43f9-a736-26ec87882bc3", "https://www.youtube.com/watch?v=GOjMPl0stfg", false, "GOjMPl0stfg", 37, [], 422, false, 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, false, 98, ~U[2025-12-23 13:00:37Z], ~U[2026-01-01 01:02:48Z], ~U[2026-01-01 01:02:48Z], "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", "Open Source won an Emmy", "https://www.youtube.com/watch?v=GOjMPl0stfg", "GOjMPl0stfg", 37, 422, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, ~U[2025-12-23 13:00:37Z]] 19:02:48.081 [debug] QUERY OK source="sources" db=0.1ms idle=31.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:02:48.081 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 19:02:48.082 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1842714] 19:02:48.082 [debug] Current batch of media processed. Will check again in 1000ms 19:02:49.082 [debug] Current batch of media processed. Will check again in 1000ms 19:02:50.084 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\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" => 656, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", "id" => "HfJwezWWu08", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HfJwezWWu08", "playlist_index" => 6, "timestamp" => 1766322037, "title" => "Microsoft is ruining Github", "upload_date" => "20251221"} 19:02:50.084 [debug] QUERY OK source="sources" db=0.1ms idle=737.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:50.085 [debug] QUERY OK source="sources" db=0.1ms idle=738.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:50.087 [debug] QUERY OK source="media_items" db=1.9ms idle=738.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-21 13:00:37Z], 37] 19:02:50.088 [debug] QUERY OK source="media_items" db=0.8ms idle=740.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "5d9ceed9-44ae-46d5-9daa-89ee0897f231", "https://www.youtube.com/watch?v=HfJwezWWu08", false, "HfJwezWWu08", 37, [], 656, false, 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, false, 98, ~U[2025-12-21 13:00:37Z], ~U[2026-01-01 01:02:50Z], ~U[2026-01-01 01:02:50Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "https://www.youtube.com/watch?v=HfJwezWWu08", "HfJwezWWu08", 37, 656, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, ~U[2025-12-21 13:00:37Z]] 19:02:50.088 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [37] 19:02:50.088 [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] 19:02:50.089 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1826952] 19:02:50.089 [debug] Current batch of media processed. Will check again in 1000ms 19:02:50.838 [info] GET /sources/30 19:02:50.838 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "30"} Pipelines: [:browser] 19:02:50.839 [debug] QUERY OK source="sources" db=0.4ms idle=751.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:02:50.839 [debug] QUERY OK source="media_profiles" db=0.1ms idle=751.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] 19:02:50.857 [debug] QUERY OK source="tasks" db=17.5ms idle=751.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [30, "executing", "available", "scheduled", "retryable"] 19:02:50.857 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=768.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" = ?) [88132] 19:02:50.858 [debug] QUERY OK source="settings" db=0.0ms idle=768.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:50.858 [debug] QUERY OK source="settings" db=0.0ms idle=18.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:50.858 [debug] QUERY OK source="settings" db=0.0ms idle=18.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:50.859 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:02:50.863 [debug] QUERY OK source="media_items" db=3.8ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [30] 19:02:50.867 [debug] QUERY OK source="media_items" db=3.8ms idle=5.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] 19:02:50.867 [debug] QUERY OK source="sources" db=0.1ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:02:50.868 [debug] QUERY OK source="media_items" db=0.2ms idle=9.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 19:02:50.871 [debug] QUERY OK source="media_items" db=3.3ms idle=8.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 ? [30, 10, 0] 19:02:50.872 [debug] QUERY OK source="sources" db=0.0ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:02:50.873 [debug] QUERY OK source="media_items" db=1.2ms idle=5.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:02:50.878 [debug] QUERY OK source="media_items" db=4.0ms idle=6.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 ? [30, 10, 0] 19:02:50.878 [info] Sent 200 in 40ms 19:02:50.961 [info] GET /sources/29 19:02:50.962 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "29"} Pipelines: [:browser] 19:02:50.962 [debug] QUERY OK source="sources" db=0.1ms idle=93.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [29] 19:02:50.962 [debug] QUERY OK source="media_profiles" db=0.1ms 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", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:02:50.964 [debug] QUERY OK source="tasks" db=1.2ms idle=90.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [29, "executing", "available", "scheduled", "retryable"] 19:02:50.964 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=90.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" = ?) [88109] 19:02:50.964 [debug] QUERY OK source="settings" db=0.0ms idle=86.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:50.964 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:50.965 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:50.965 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [29] 19:02:50.966 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [29] 19:02:50.966 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [29, 10, 0] 19:02:50.967 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [29] 19:02:50.967 [debug] QUERY OK source="media_items" db=0.0ms idle=2.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [29] 19:02:50.967 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [29, 10, 0] 19:02:50.967 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [29] 19:02:50.968 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [29] 19:02:50.968 [debug] QUERY OK source="media_items" db=0.4ms idle=1.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [29, 10, 0] 19:02:50.969 [info] Sent 200 in 7ms 19:02:51.089 [debug] Current batch of media processed. Will check again in 1000ms 19:02:52.091 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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" => 3896, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", "id" => "vHfdUqLmPNU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vHfdUqLmPNU", "playlist_index" => 7, "timestamp" => 1766235721, "title" => "Legendary Game Dev Jonathan Blow | The Standup", "upload_date" => "20251220"} 19:02:52.091 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1123.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:52.092 [debug] QUERY OK source="sources" db=0.1ms idle=1123.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:52.094 [debug] QUERY OK source="media_items" db=1.9ms idle=1123.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-20 13:02:01Z], 37] 19:02:52.095 [debug] QUERY OK source="media_items" db=1.0ms idle=1040.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "df4fed2d-e33c-4428-8fa3-0c93dee49913", "https://www.youtube.com/watch?v=vHfdUqLmPNU", false, "vHfdUqLmPNU", 37, [], 3896, false, 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, false, 98, ~U[2025-12-20 13:02:01Z], ~U[2026-01-01 01:02:52Z], ~U[2026-01-01 01:02:52Z], "Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "https://www.youtube.com/watch?v=vHfdUqLmPNU", "vHfdUqLmPNU", 37, 3896, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, ~U[2025-12-20 13:02:01Z]] 19:02:52.096 [debug] QUERY OK source="sources" db=0.6ms idle=40.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:02:52.097 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 19:02:52.097 [debug] QUERY OK source="media_items" db=0.5ms 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 [1818764] 19:02:52.097 [debug] Current batch of media processed. Will check again in 1000ms 19:02:53.098 [debug] Current batch of media processed. Will check again in 1000ms 19:02:54.100 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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" => 1840, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", "id" => "kZGyz9jCUj0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kZGyz9jCUj0", "playlist_index" => 8, "timestamp" => 1766149289, "title" => "Worst Onboarding Experience Ever | The Standup", "upload_date" => "20251219"} 19:02:54.101 [debug] QUERY OK source="sources" db=0.2ms idle=754.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:54.101 [debug] QUERY OK source="sources" db=0.1ms idle=754.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:54.103 [debug] QUERY OK source="media_items" db=2.3ms idle=754.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-19 13:01:29Z], 37] 19:02:54.105 [debug] QUERY OK source="media_items" db=0.8ms idle=757.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "2aa5bbb6-66f8-4ec4-b8bb-43cbc3e415d5", "https://www.youtube.com/watch?v=kZGyz9jCUj0", false, "kZGyz9jCUj0", 37, [], 1840, false, 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, false, 98, ~U[2025-12-19 13:01:29Z], ~U[2026-01-01 01:02:54Z], ~U[2026-01-01 01:02:54Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "https://www.youtube.com/watch?v=kZGyz9jCUj0", "kZGyz9jCUj0", 37, 1840, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, ~U[2025-12-19 13:01:29Z]] 19:02:54.105 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [37] 19:02:54.105 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:02:54.106 [debug] QUERY OK source="media_items" db=0.9ms 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 [1810563] 19:02:54.106 [debug] Current batch of media processed. Will check again in 1000ms 19:02:55.107 [debug] Current batch of media processed. Will check again in 1000ms 19:02:56.108 [debug] Current batch of media processed. Will check again in 1000ms 19:02:57.109 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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" => 493, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", "id" => "3tHOhMjB498", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3tHOhMjB498", "playlist_index" => 9, "timestamp" => 1766062482, "title" => "The Firefox Situation", "upload_date" => "20251218"} 19:02:57.110 [debug] QUERY OK source="sources" db=0.1ms idle=1763.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:57.110 [debug] QUERY OK source="sources" db=0.1ms idle=1763.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:57.112 [debug] QUERY OK source="media_items" db=1.8ms idle=1763.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-18 12:54:42Z], 37] 19:02:57.113 [debug] QUERY OK source="media_items" db=0.8ms idle=1050.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "3457d33c-66e0-43a0-a474-ec09451a503f", "https://www.youtube.com/watch?v=3tHOhMjB498", false, "3tHOhMjB498", 37, [], 493, false, 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, false, 98, ~U[2025-12-18 12:54:42Z], ~U[2026-01-01 01:02:57Z], ~U[2026-01-01 01:02:57Z], "THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "https://www.youtube.com/watch?v=3tHOhMjB498", "3tHOhMjB498", 37, 493, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, ~U[2025-12-18 12:54:42Z]] 19:02:57.113 [debug] QUERY OK source="sources" db=0.1ms idle=49.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:02:57.114 [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] 19:02:57.114 [debug] QUERY OK source="media_items" db=0.1ms 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 [1803387] 19:02:57.114 [debug] Current batch of media processed. Will check again in 1000ms 19:02:58.115 [debug] Current batch of media processed. Will check again in 1000ms 19:02:59.117 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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" => 726, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", "id" => "QtGBnR24LcM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QtGBnR24LcM", "playlist_index" => 10, "timestamp" => 1765907902, "title" => "Linus x Linus - Is AI A Bubble?", "upload_date" => "20251216"} 19:02:59.118 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=771.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:02:59.118 [debug] QUERY OK source="sources" db=0.1ms idle=771.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:02:59.120 [debug] QUERY OK source="media_items" db=2.2ms idle=772.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-16 17:58:22Z], 37] 19:02:59.123 [debug] QUERY OK source="media_items" db=2.3ms idle=774.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "140700ae-c0e0-4e34-ab36-fe47901ec8d4", "https://www.youtube.com/watch?v=QtGBnR24LcM", false, "QtGBnR24LcM", 37, [], 726, false, 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, false, 98, ~U[2025-12-16 17:58:22Z], ~U[2026-01-01 01:02:59Z], ~U[2026-01-01 01:02:59Z], "Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "https://www.youtube.com/watch?v=QtGBnR24LcM", "QtGBnR24LcM", 37, 726, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, ~U[2025-12-16 17:58:22Z]] 19:02:59.123 [debug] QUERY OK source="sources" db=0.1ms idle=56.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:02:59.124 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:02:59.124 [debug] QUERY OK source="media_items" db=0.1ms 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 [1788621] 19:02:59.124 [debug] Current batch of media processed. Will check again in 1000ms 19:03:00.125 [debug] Current batch of media processed. Will check again in 1000ms 19:03:00.817 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:03:01.127 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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" => 607, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", "id" => "7vw445i8gOI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7vw445i8gOI", "playlist_index" => 11, "timestamp" => 1765718239, "title" => "How React took down Cloudflare", "upload_date" => "20251214"} 19:03:01.127 [debug] QUERY OK source="sources" db=0.2ms idle=780.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:01.127 [debug] QUERY OK source="sources" db=0.0ms idle=781.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:01.129 [debug] QUERY OK source="media_items" db=1.9ms idle=781.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-14 13:17:19Z], 37] 19:03:01.131 [debug] QUERY OK source="media_items" db=0.8ms idle=312.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "cf4a2f7f-cac4-4902-9fcc-0dcc6668d622", "https://www.youtube.com/watch?v=7vw445i8gOI", false, "7vw445i8gOI", 37, [], 607, false, 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, false, 98, ~U[2025-12-14 13:17:19Z], ~U[2026-01-01 01:03:01Z], ~U[2026-01-01 01:03:01Z], "Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "https://www.youtube.com/watch?v=7vw445i8gOI", "7vw445i8gOI", 37, 607, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, ~U[2025-12-14 13:17:19Z]] 19:03:01.131 [debug] QUERY OK source="sources" db=0.2ms idle=61.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:01.131 [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] 19:03:01.132 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1771351] 19:03:01.132 [debug] Current batch of media processed. Will check again in 1000ms 19:03:02.133 [debug] Current batch of media processed. Will check again in 1000ms 19:03:02.169 [info] GET /sources/43/media/1785671 19:03:02.169 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1785671", "source_id" => "43"} Pipelines: [:browser] 19:03:02.169 [debug] QUERY OK source="media_items" db=0.1ms idle=1038.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" = ?) [1785671] 19:03:02.170 [debug] QUERY OK source="tasks" db=0.1ms idle=1038.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" [1785671] 19:03:02.170 [debug] QUERY OK source="sources" db=0.2ms idle=1038.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:02.170 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1038.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 (?,?)) [74789, 87077] 19:03:02.171 [debug] QUERY OK source="settings" db=0.0ms idle=99.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:02.171 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:02.171 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:02.172 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:03:02.172 [info] Sent 200 in 3ms 19:03:02.460 [info] GET /sources/55 19:03:02.460 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "55"} Pipelines: [:browser] 19:03:02.460 [debug] QUERY OK source="sources" db=0.2ms idle=289.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:02.461 [debug] QUERY OK source="media_profiles" db=0.1ms idle=289.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] 19:03:02.461 [debug] QUERY OK source="tasks" db=0.4ms idle=289.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 (?,?,?,?)) [55, "executing", "available", "scheduled", "retryable"] 19:03:02.461 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=290.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" = ?) [88084] 19:03:02.462 [debug] QUERY OK source="settings" db=0.0ms idle=289.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:02.462 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:02.462 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:02.463 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [55] 19:03:02.464 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [55] 19:03:02.464 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [55, 10, 0] 19:03:02.464 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [55] 19:03:02.465 [debug] QUERY OK source="media_items" db=0.0ms idle=2.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [55] 19:03:02.465 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [55, 10, 0] 19:03:02.466 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [55] 19:03:02.466 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [55] 19:03:02.466 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [55, 10, 0] 19:03:02.467 [info] Sent 200 in 7ms 19:03:03.133 [debug] Current batch of media processed. Will check again in 1000ms 19:03:04.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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" => 554, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", "id" => "S4oO27tXVyE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=S4oO27tXVyE", "playlist_index" => 12, "timestamp" => 1765545528, "title" => "Oops we leaked your data", "upload_date" => "20251212"} 19:03:04.135 [debug] QUERY OK source="sources" db=0.1ms idle=1669.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:04.135 [debug] QUERY OK source="sources" db=0.1ms idle=1669.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:04.138 [debug] QUERY OK source="media_items" db=2.0ms idle=1669.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 13:18:48Z], 37] 19:03:04.139 [debug] QUERY OK source="media_items" db=0.8ms idle=1065.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "bb826727-9190-4d1f-a706-52b124825ee8", "https://www.youtube.com/watch?v=S4oO27tXVyE", false, "S4oO27tXVyE", 37, [], 554, false, 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, false, 98, ~U[2025-12-12 13:18:48Z], ~U[2026-01-01 01:03:04Z], ~U[2026-01-01 01:03:04Z], "Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "https://www.youtube.com/watch?v=S4oO27tXVyE", "S4oO27tXVyE", 37, 554, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, ~U[2025-12-12 13:18:48Z]] 19:03:04.139 [debug] QUERY OK source="sources" db=0.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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:04.139 [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] 19:03:04.140 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1755590] 19:03:04.140 [debug] Current batch of media processed. Will check again in 1000ms 19:03:05.141 [debug] Current batch of media processed. Will check again in 1000ms 19:03:06.142 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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" => 661, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", "id" => "E3_95BZYIVs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=E3_95BZYIVs", "playlist_index" => 13, "timestamp" => 1765371635, "title" => "Why Github Why?", "upload_date" => "20251210"} 19:03:06.143 [debug] QUERY OK source="sources" db=0.2ms idle=796.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:06.143 [debug] QUERY OK source="sources" db=0.1ms idle=796.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:06.145 [debug] QUERY OK source="media_items" db=2.0ms idle=797.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-10 13:00:35Z], 37] 19:03:06.146 [debug] QUERY OK source="media_items" db=0.7ms idle=799.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "310f1e8e-bd68-48c3-929b-173878424b8c", "https://www.youtube.com/watch?v=E3_95BZYIVs", false, "E3_95BZYIVs", 37, [], 661, false, 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, false, 98, ~U[2025-12-10 13:00:35Z], ~U[2026-01-01 01:03:06Z], ~U[2026-01-01 01:03:06Z], "TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "https://www.youtube.com/watch?v=E3_95BZYIVs", "E3_95BZYIVs", 37, 661, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, ~U[2025-12-10 13:00:35Z]] 19:03:06.146 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:06.147 [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] 19:03:06.147 [debug] QUERY OK source="media_items" db=0.1ms 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 [1739553] 19:03:06.147 [debug] Current batch of media processed. Will check again in 1000ms 19:03:07.148 [debug] Current batch of media processed. Will check again in 1000ms 19:03:08.150 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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" => 2084, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", "id" => "_L5ynHuFX7Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_L5ynHuFX7Y", "playlist_index" => 14, "timestamp" => 1765125003, "title" => "1 year, no job", "upload_date" => "20251207"} 19:03:08.150 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=803.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:08.151 [debug] QUERY OK source="sources" db=0.1ms idle=804.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:08.154 [debug] QUERY OK source="media_items" db=2.8ms idle=804.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-07 16:30:03Z], 37] 19:03:08.155 [debug] QUERY OK source="media_items" db=0.7ms idle=807.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "4cd12e42-df82-4c4c-b343-22db44b582a0", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", false, "_L5ynHuFX7Y", 37, [], 2084, false, 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, false, 98, ~U[2025-12-07 16:30:03Z], ~U[2026-01-01 01:03:08Z], ~U[2026-01-01 01:03:08Z], "original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", "_L5ynHuFX7Y", 37, 2084, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, ~U[2025-12-07 16:30:03Z]] 19:03:08.155 [debug] QUERY OK source="sources" db=0.1ms idle=73.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:08.155 [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] 19:03:08.156 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1716823] 19:03:08.156 [debug] Current batch of media processed. Will check again in 1000ms 19:03:09.156 [debug] Current batch of media processed. Will check again in 1000ms 19:03:10.158 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\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" => 629, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", "id" => "bh5ut_T6A4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bh5ut_T6A4c", "playlist_index" => 15, "timestamp" => 1764942376, "title" => "I Finally Watched It", "upload_date" => "20251205"} 19:03:10.158 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=812.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:10.159 [debug] QUERY OK source="sources" db=0.1ms idle=812.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:10.162 [debug] QUERY OK source="media_items" db=2.7ms idle=812.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 13:46:16Z], 37] 19:03:10.163 [debug] QUERY OK source="media_items" db=0.8ms idle=815.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "1ecb52f6-cfaf-48c8-b661-ca318d20f348", "https://www.youtube.com/watch?v=bh5ut_T6A4c", false, "bh5ut_T6A4c", 37, [], 629, false, 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, false, 98, ~U[2025-12-05 13:46:16Z], ~U[2026-01-01 01:03:10Z], ~U[2026-01-01 01:03:10Z], "Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "https://www.youtube.com/watch?v=bh5ut_T6A4c", "bh5ut_T6A4c", 37, 629, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, ~U[2025-12-05 13:46:16Z]] 19:03:10.163 [debug] QUERY OK source="sources" db=0.1ms idle=79.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:10.163 [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] 19:03:10.164 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1700214] 19:03:10.164 [debug] Current batch of media processed. Will check again in 1000ms 19:03:11.164 [debug] Current batch of media processed. Will check again in 1000ms 19:03:12.165 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "duration" => 2452, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", "id" => "r3bPmtEP9SQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=r3bPmtEP9SQ", "playlist_index" => 16, "timestamp" => 1764853312, "title" => "The Secret of the AWS Outage | The Standup", "upload_date" => "20251204"} 19:03:12.166 [debug] QUERY OK source="sources" db=0.2ms idle=819.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:12.166 [debug] QUERY OK source="sources" db=0.1ms idle=819.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:12.168 [debug] QUERY OK source="media_items" db=1.9ms idle=820.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-04 13:01:52Z], 37] 19:03:12.169 [debug] QUERY OK source="media_items" db=0.9ms idle=822.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "4ca87237-6032-4750-844c-59a722b9fd73", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", false, "r3bPmtEP9SQ", 37, [], 2452, false, 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, false, 98, ~U[2025-12-04 13:01:52Z], ~U[2026-01-01 01:03:12Z], ~U[2026-01-01 01:03:12Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", "r3bPmtEP9SQ", 37, 2452, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, ~U[2025-12-04 13:01:52Z]] 19:03:12.170 [debug] QUERY OK source="sources" db=0.1ms 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] 19:03:12.170 [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] 19:03:12.170 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1691650] 19:03:12.170 [debug] Current batch of media processed. Will check again in 1000ms 19:03:13.171 [debug] Current batch of media processed. Will check again in 1000ms 19:03:14.172 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "duration" => 639, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", "id" => "Te2I2muO-4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Te2I2muO-4c", "playlist_index" => 17, "timestamp" => 1764735026, "title" => "Anthropic confirms software engineering is NOT dead", "upload_date" => "20251203"} 19:03:14.173 [debug] QUERY OK source="sources" db=0.2ms idle=826.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:14.173 [debug] QUERY OK source="sources" db=0.1ms idle=827.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:14.175 [debug] QUERY OK source="media_items" db=1.9ms idle=827.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-03 04:10:26Z], 37] 19:03:14.177 [debug] QUERY OK source="media_items" db=0.8ms idle=829.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "3332e3cf-df7e-4cc8-bf62-6009d2e311af", "https://www.youtube.com/watch?v=Te2I2muO-4c", false, "Te2I2muO-4c", 37, [], 639, false, 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, false, 98, ~U[2025-12-03 04:10:26Z], ~U[2026-01-01 01:03:14Z], ~U[2026-01-01 01:03:14Z], "Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "https://www.youtube.com/watch?v=Te2I2muO-4c", "Te2I2muO-4c", 37, 639, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, ~U[2025-12-03 04:10:26Z]] 19:03:14.177 [debug] QUERY OK source="sources" db=0.1ms idle=87.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:14.177 [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] 19:03:14.178 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1681283] 19:03:14.178 [debug] Current batch of media processed. Will check again in 1000ms 19:03:15.178 [debug] Current batch of media processed. Will check again in 1000ms 19:03:16.180 [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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\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" => 329, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", "id" => "yqrp2uK9LY4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yqrp2uK9LY4", "playlist_index" => 18, "timestamp" => 1764681581, "title" => "Companies keep falling for it", "upload_date" => "20251202"} 19:03:16.180 [debug] QUERY OK source="sources" db=0.2ms idle=833.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:16.181 [debug] QUERY OK source="sources" db=0.1ms idle=834.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:16.183 [debug] QUERY OK source="media_items" db=2.0ms idle=834.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-02 13:19:41Z], 37] 19:03:16.184 [debug] QUERY OK source="media_items" db=0.7ms idle=836.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "899f08a6-1a3a-4b18-8910-dcc0afd43cad", "https://www.youtube.com/watch?v=yqrp2uK9LY4", false, "yqrp2uK9LY4", 37, [], 329, false, 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, false, 98, ~U[2025-12-02 13:19:41Z], ~U[2026-01-01 01:03:16Z], ~U[2026-01-01 01:03:16Z], "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "https://www.youtube.com/watch?v=yqrp2uK9LY4", "yqrp2uK9LY4", 37, 329, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, ~U[2025-12-02 13:19:41Z]] 19:03:16.184 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [37] 19:03:16.184 [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] 19:03:16.185 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1676402] 19:03:16.185 [debug] Current batch of media processed. Will check again in 1000ms 19:03:17.056 [info] {"source":"oban","duration":3529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:03:17.185 [debug] Current batch of media processed. Will check again in 1000ms 19:03:17.494 [info] GET /sources/30/media/1899680 19:03:17.494 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1899680", "source_id" => "30"} Pipelines: [:browser] 19:03:17.495 [debug] QUERY OK source="media_items" db=0.2ms idle=437.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" = ?) [1899680] 19:03:17.495 [debug] QUERY OK source="tasks" db=0.1ms idle=399.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" [1899680] 19:03:17.495 [debug] QUERY OK source="sources" db=0.1ms idle=148.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:17.495 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=149.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" = ?) [87639] 19:03:17.495 [debug] QUERY OK source="settings" db=0.0ms idle=149.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:17.496 [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 [] 19:03:17.496 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:17.496 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:03:17.497 [info] Sent 200 in 3ms 19:03:17.774 [info] GET /sources/37/media/1906392 19:03:17.774 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1906392", "source_id" => "37"} Pipelines: [:browser] 19:03:17.775 [debug] QUERY OK source="media_items" db=0.1ms idle=279.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" = ?) [1906392] 19:03:17.775 [debug] QUERY OK source="tasks" db=0.1ms idle=279.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" [1906392] 19:03:17.775 [debug] QUERY OK source="sources" db=0.2ms idle=279.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:17.775 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=279.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" = ?) [87945] 19:03:17.776 [debug] QUERY OK source="settings" db=0.0ms idle=279.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:17.776 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:17.776 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:17.776 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:03:17.777 [info] Sent 200 in 3ms 19:03:18.187 [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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\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" => 446, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", "id" => "bDOM3cy6IYg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bDOM3cy6IYg", "playlist_index" => 19, "timestamp" => 1764507670, "title" => "they are turning on us (and I'm not mad)", "upload_date" => "20251130"} 19:03:18.187 [debug] QUERY OK source="sources" db=0.1ms idle=411.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:18.187 [debug] QUERY OK source="sources" db=0.0ms idle=411.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:18.189 [debug] QUERY OK source="media_items" db=1.9ms idle=411.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-30 13:01:10Z], 37] 19:03:18.191 [debug] QUERY OK source="media_items" db=1.4ms idle=413.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "2b3af369-5a3c-4a32-a633-a1a53f342a48", "https://www.youtube.com/watch?v=bDOM3cy6IYg", false, "bDOM3cy6IYg", 37, [], 446, false, 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, false, 98, ~U[2025-11-30 13:01:10Z], ~U[2026-01-01 01:03:18Z], ~U[2026-01-01 01:03:18Z], "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "https://www.youtube.com/watch?v=bDOM3cy6IYg", "bDOM3cy6IYg", 37, 446, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, ~U[2025-11-30 13:01:10Z]] 19:03:18.191 [debug] QUERY OK source="sources" db=0.1ms idle=94.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:03:18.192 [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] 19:03:18.192 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1660535] 19:03:18.192 [debug] Current batch of media processed. Will check again in 1000ms 19:03:19.193 [debug] Current batch of media processed. Will check again in 1000ms 19:03:20.194 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "duration" => 370, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", "id" => "OY8o5e331iM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OY8o5e331iM", "playlist_index" => 20, "timestamp" => 1764334850, "title" => "STOP. please microsoft", "upload_date" => "20251128"} 19:03:20.195 [debug] QUERY OK source="sources" db=0.1ms idle=848.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:03:20.195 [debug] QUERY OK source="sources" db=0.1ms idle=848.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:20.197 [debug] QUERY OK source="media_items" db=1.9ms idle=848.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-28 13:00:50Z], 37] 19:03:20.198 [debug] QUERY OK source="media_items" db=0.7ms idle=851.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "STOP. please microsoft", "7db7b221-5638-4320-a4a3-7d37dcbaea8c", "https://www.youtube.com/watch?v=OY8o5e331iM", false, "OY8o5e331iM", 37, [], 370, false, 20, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", false, false, 98, ~U[2025-11-28 13:00:50Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "STOP. please microsoft", "https://www.youtube.com/watch?v=OY8o5e331iM", "OY8o5e331iM", 37, 370, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", false, ~U[2025-11-28 13:00:50Z]] 19:03:20.198 [debug] QUERY OK source="sources" db=0.1ms idle=98.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.198 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:03:20.199 [debug] QUERY OK source="media_items" db=0.3ms 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 [1645063] 19:03:20.199 [debug] Current batch of media processed. Will check again in 1000ms 19:03:20.287 [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/23/45/23455ac5dbefad66a61e79cf139407a8ec0b20dec062ee0a8155ca72a515db85.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/73/8e/738e2ad88e10d0b5ef9c0229d33ea4292b4528fc6993e84825779f96c8f83d9e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:03:20.288 [debug] Gracefully stopping file follower 19:03:20.288 [debug] QUERY OK source="sources" db=0.4ms 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" IN (?)) [37] 19:03:20.289 [debug] QUERY OK source="sources" db=0.0ms idle=90.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.291 [debug] QUERY OK source="media_items" db=1.9ms idle=90.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-31 12:00:10Z], 37] 19:03:20.292 [debug] QUERY OK source="media_items" db=0.7ms idle=92.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "12bd5df3-2ab4-4f0e-a487-e2c60d025d4f", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", false, "5Hs4Ikwphe0", 37, [], 4028, false, 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, false, 98, ~U[2025-12-31 12:00:10Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", "5Hs4Ikwphe0", 37, 4028, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, ~U[2025-12-31 12:00:10Z]] 19:03:20.292 [debug] QUERY OK source="sources" db=0.1ms idle=92.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:20.294 [debug] QUERY OK source="media_items" db=1.8ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-29 12:59:05Z], 37] 19:03:20.295 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["They did what to SQL?", "61be42a0-f740-4183-a78f-23f2101c9235", "https://www.youtube.com/watch?v=GwJrZBe8JX4", false, "GwJrZBe8JX4", 37, [], 359, false, 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, false, 98, ~U[2025-12-29 12:59:05Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "", "They did what to SQL?", "https://www.youtube.com/watch?v=GwJrZBe8JX4", "GwJrZBe8JX4", 37, 359, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, ~U[2025-12-29 12:59:05Z]] 19:03:20.295 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 19:03:20.297 [debug] QUERY OK source="media_items" db=1.8ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-27 13:01:30Z], 37] 19:03:20.298 [debug] QUERY OK source="media_items" db=0.9ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "f0123438-b769-44c1-ab03-6a1df646092a", "https://www.youtube.com/watch?v=fP5URbP30j0", false, "fP5URbP30j0", 37, [], 562, false, 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, false, 98, ~U[2025-12-27 13:01:30Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "https://www.youtube.com/watch?v=fP5URbP30j0", "fP5URbP30j0", 37, 562, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, ~U[2025-12-27 13:01:30Z]] 19:03:20.299 [debug] QUERY OK source="sources" db=0.3ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.301 [debug] QUERY OK source="media_items" db=1.9ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 13:01:55Z], 37] 19:03:20.302 [debug] QUERY OK source="media_items" db=0.6ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "01f9c2d7-a6f0-4ebc-b6b3-74834d46abe5", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", false, "qGH8gKdpZMQ", 37, [], 583, false, 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, false, 98, ~U[2025-12-25 13:01:55Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", "qGH8gKdpZMQ", 37, 583, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, ~U[2025-12-25 13:01:55Z]] 19:03:20.303 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.305 [debug] QUERY OK source="media_items" db=2.0ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 13:00:37Z], 37] 19:03:20.306 [debug] QUERY OK source="media_items" db=0.6ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "Open Source won an Emmy", "b25196de-20cb-4f2b-a4fd-46285f5c593b", "https://www.youtube.com/watch?v=GOjMPl0stfg", false, "GOjMPl0stfg", 37, [], 422, false, 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, false, 98, ~U[2025-12-23 13:00:37Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "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", "Open Source won an Emmy", "https://www.youtube.com/watch?v=GOjMPl0stfg", "GOjMPl0stfg", 37, 422, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, ~U[2025-12-23 13:00:37Z]] 19:03:20.306 [debug] QUERY OK source="sources" db=0.2ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.308 [debug] QUERY OK source="media_items" db=1.6ms idle=4.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-21 13:00:37Z], 37] 19:03:20.309 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "93aa2d46-4209-4c0b-bcb0-79fc66008cfc", "https://www.youtube.com/watch?v=HfJwezWWu08", false, "HfJwezWWu08", 37, [], 656, false, 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, false, 98, ~U[2025-12-21 13:00:37Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "https://www.youtube.com/watch?v=HfJwezWWu08", "HfJwezWWu08", 37, 656, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, ~U[2025-12-21 13:00:37Z]] 19:03:20.309 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.311 [debug] QUERY OK source="media_items" db=1.5ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-20 13:02:01Z], 37] 19:03:20.312 [debug] QUERY OK source="media_items" db=0.8ms idle=5.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "bc66553a-90b7-457c-9a30-ef1c6e31307e", "https://www.youtube.com/watch?v=vHfdUqLmPNU", false, "vHfdUqLmPNU", 37, [], 3896, false, 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, false, 98, ~U[2025-12-20 13:02:01Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "https://www.youtube.com/watch?v=vHfdUqLmPNU", "vHfdUqLmPNU", 37, 3896, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, ~U[2025-12-20 13:02:01Z]] 19:03:20.312 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.314 [debug] QUERY OK source="media_items" db=1.5ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-19 13:01:29Z], 37] 19:03:20.315 [debug] QUERY OK source="media_items" db=0.7ms idle=4.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "3d97231b-876c-41fd-9fe8-36c66209d6bb", "https://www.youtube.com/watch?v=kZGyz9jCUj0", false, "kZGyz9jCUj0", 37, [], 1840, false, 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, false, 98, ~U[2025-12-19 13:01:29Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "https://www.youtube.com/watch?v=kZGyz9jCUj0", "kZGyz9jCUj0", 37, 1840, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, ~U[2025-12-19 13:01:29Z]] 19:03:20.315 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.317 [debug] QUERY OK source="media_items" db=1.5ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 12:54:42Z], 37] 19:03:20.318 [debug] QUERY OK source="media_items" db=0.7ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "79b32c26-f538-4861-95f3-eb6b4d325b93", "https://www.youtube.com/watch?v=3tHOhMjB498", false, "3tHOhMjB498", 37, [], 493, false, 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, false, 98, ~U[2025-12-18 12:54:42Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "https://www.youtube.com/watch?v=3tHOhMjB498", "3tHOhMjB498", 37, 493, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, ~U[2025-12-18 12:54:42Z]] 19:03:20.318 [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" = ?) [37] 19:03:20.320 [debug] QUERY OK source="media_items" db=1.5ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 17:58:22Z], 37] 19:03:20.321 [debug] QUERY OK source="media_items" db=0.5ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "7c732bf2-b735-4343-855d-94a8fdeb3cd1", "https://www.youtube.com/watch?v=QtGBnR24LcM", false, "QtGBnR24LcM", 37, [], 726, false, 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, false, 98, ~U[2025-12-16 17:58:22Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "https://www.youtube.com/watch?v=QtGBnR24LcM", "QtGBnR24LcM", 37, 726, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, ~U[2025-12-16 17:58:22Z]] 19:03:20.321 [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" = ?) [37] 19:03:20.323 [debug] QUERY OK source="media_items" db=1.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-12-14 13:17:19Z], 37] 19:03:20.324 [debug] QUERY OK source="media_items" db=0.5ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "eec2f023-55c8-4366-b364-a239e42a05ab", "https://www.youtube.com/watch?v=7vw445i8gOI", false, "7vw445i8gOI", 37, [], 607, false, 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, false, 98, ~U[2025-12-14 13:17:19Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "https://www.youtube.com/watch?v=7vw445i8gOI", "7vw445i8gOI", 37, 607, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, ~U[2025-12-14 13:17:19Z]] 19:03:20.324 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.326 [debug] QUERY OK source="media_items" db=1.5ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 13:18:48Z], 37] 19:03:20.327 [debug] QUERY OK source="media_items" db=0.5ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "a2a618b6-4d57-4e74-ac24-4bcb4f743790", "https://www.youtube.com/watch?v=S4oO27tXVyE", false, "S4oO27tXVyE", 37, [], 554, false, 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, false, 98, ~U[2025-12-12 13:18:48Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "https://www.youtube.com/watch?v=S4oO27tXVyE", "S4oO27tXVyE", 37, 554, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, ~U[2025-12-12 13:18:48Z]] 19:03:20.327 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.329 [debug] QUERY OK source="media_items" db=1.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-12-10 13:00:35Z], 37] 19:03:20.329 [debug] QUERY OK source="media_items" db=0.5ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "d396e6f5-02ce-4abb-bfdf-738c6429ca84", "https://www.youtube.com/watch?v=E3_95BZYIVs", false, "E3_95BZYIVs", 37, [], 661, false, 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, false, 98, ~U[2025-12-10 13:00:35Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "https://www.youtube.com/watch?v=E3_95BZYIVs", "E3_95BZYIVs", 37, 661, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, ~U[2025-12-10 13:00:35Z]] 19:03:20.330 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.332 [debug] QUERY OK source="media_items" db=1.6ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 16:30:03Z], 37] 19:03:20.332 [debug] QUERY OK source="media_items" db=0.5ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "c0feb953-eb62-428b-94f1-5d28d8d6dc1a", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", false, "_L5ynHuFX7Y", 37, [], 2084, false, 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, false, 98, ~U[2025-12-07 16:30:03Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", "_L5ynHuFX7Y", 37, 2084, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, ~U[2025-12-07 16:30:03Z]] 19:03:20.333 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.334 [debug] QUERY OK source="media_items" db=1.6ms idle=3.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 13:46:16Z], 37] 19:03:20.351 [debug] QUERY OK source="media_items" db=16.6ms idle=4.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "bc81c2e5-1331-4254-96e2-def171e7f701", "https://www.youtube.com/watch?v=bh5ut_T6A4c", false, "bh5ut_T6A4c", 37, [], 629, false, 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, false, 98, ~U[2025-12-05 13:46:16Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "https://www.youtube.com/watch?v=bh5ut_T6A4c", "bh5ut_T6A4c", 37, 629, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, ~U[2025-12-05 13:46:16Z]] 19:03:20.352 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 19:03:20.354 [debug] QUERY OK source="media_items" db=1.8ms idle=19.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 13:01:52Z], 37] 19:03:20.359 [debug] QUERY OK source="media_items" db=4.7ms idle=21.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "e843e01a-600c-45c6-83fd-7cfc5578c6ca", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", false, "r3bPmtEP9SQ", 37, [], 2452, false, 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, false, 98, ~U[2025-12-04 13:01:52Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", "r3bPmtEP9SQ", 37, 2452, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, ~U[2025-12-04 13:01:52Z]] 19:03:20.360 [debug] QUERY OK source="sources" db=0.3ms idle=24.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:03:20.362 [debug] QUERY OK source="media_items" db=1.8ms 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[2025-12-03 04:10:26Z], 37] 19:03:20.363 [debug] QUERY OK source="media_items" db=0.6ms idle=9.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "f4b36c2c-8bcb-4a29-9c14-60f09fd0be56", "https://www.youtube.com/watch?v=Te2I2muO-4c", false, "Te2I2muO-4c", 37, [], 639, false, 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, false, 98, ~U[2025-12-03 04:10:26Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "https://www.youtube.com/watch?v=Te2I2muO-4c", "Te2I2muO-4c", 37, 639, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, ~U[2025-12-03 04:10:26Z]] 19:03:20.363 [debug] QUERY OK source="sources" db=0.2ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 19:03:20.365 [debug] QUERY OK source="media_items" db=1.7ms idle=4.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-02 13:19:41Z], 37] 19:03:20.366 [debug] QUERY OK source="media_items" db=0.6ms idle=5.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "5e02cd69-cd9d-4829-91cf-5f7fcce62086", "https://www.youtube.com/watch?v=yqrp2uK9LY4", false, "yqrp2uK9LY4", 37, [], 329, false, 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, false, 98, ~U[2025-12-02 13:19:41Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "https://www.youtube.com/watch?v=yqrp2uK9LY4", "yqrp2uK9LY4", 37, 329, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, ~U[2025-12-02 13:19:41Z]] 19:03:20.366 [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" = ?) [37] 19:03:20.368 [debug] QUERY OK source="media_items" db=1.6ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-30 13:01:10Z], 37] 19:03:20.369 [debug] QUERY OK source="media_items" db=0.6ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "d56c762b-f8bd-4b4f-b20d-b4ae1bc7e3d0", "https://www.youtube.com/watch?v=bDOM3cy6IYg", false, "bDOM3cy6IYg", 37, [], 446, false, 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, false, 98, ~U[2025-11-30 13:01:10Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "https://www.youtube.com/watch?v=bDOM3cy6IYg", "bDOM3cy6IYg", 37, 446, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, ~U[2025-11-30 13:01:10Z]] 19:03:20.369 [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" = ?) [37] 19:03:20.371 [debug] QUERY OK source="media_items" db=1.6ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-28 13:00:50Z], 37] 19:03:20.372 [debug] QUERY OK source="media_items" db=0.6ms idle=4.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "STOP. please microsoft", "4d4c4d4a-bb2b-4d01-a346-8d4e0c5e2b0f", "https://www.youtube.com/watch?v=OY8o5e331iM", false, "OY8o5e331iM", 37, [], 370, false, 20, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", false, false, 98, ~U[2025-11-28 13:00:50Z], ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "STOP. please microsoft", "https://www.youtube.com/watch?v=OY8o5e331iM", "OY8o5e331iM", 37, 370, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", false, ~U[2025-11-28 13:00:50Z]] 19:03:20.372 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z], 37] 19:03:20.374 [debug] QUERY OK source="media_items" db=1.7ms idle=3.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:03:20.384 [debug] QUERY OK source="media_items" db=1.8ms idle=1.9ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [37] 19:03:20.384 [debug] QUERY OK source="media_items" db=0.1ms idle=3.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 19:03:20.385 [debug] QUERY OK source="tasks" db=0.3ms idle=2.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88137, 37, ~U[2026-01-01 01:03:20Z], ~U[2026-01-01 01:03:20Z]] 19:03:20.385 [info] {"args":{"id":37},"id":88123,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":45351821,"event":"job:stop","queue_time":740850,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:03:47.061 [info] {"source":"oban","duration":3921,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:04:00.818 [info] {"source":"oban","duration":142,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:04:17.065 [info] {"source":"oban","duration":3462,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:04:25.533 [info] GET /sources/55/media/1901240 19:04:25.533 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1901240", "source_id" => "55"} Pipelines: [:browser] 19:04:25.533 [debug] QUERY OK source="media_items" db=0.1ms idle=1186.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" = ?) [1901240] 19:04:25.534 [debug] QUERY OK source="tasks" db=0.1ms idle=1186.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" [1901240] 19:04:25.534 [debug] QUERY OK source="sources" db=0.1ms idle=1186.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:04:25.534 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1187.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" = ?) [87715] 19:04:25.534 [debug] QUERY OK source="settings" db=0.0ms idle=321.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:25.534 [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 [] 19:04:25.534 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:25.535 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:04:25.536 [info] Sent 200 in 3ms 19:04:32.065 [info] GET /sources/43/media/1793703 19:04:32.065 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1793703", "source_id" => "43"} Pipelines: [:browser] 19:04:32.066 [debug] QUERY OK source="media_items" db=0.2ms idle=842.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" = ?) [1793703] 19:04:32.066 [debug] QUERY OK source="tasks" db=0.1ms idle=719.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" [1793703] 19:04:32.066 [debug] QUERY OK source="sources" db=0.2ms idle=719.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:04:32.067 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=720.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 (?,?)) [75030, 87406] 19:04:32.067 [debug] QUERY OK source="settings" db=0.1ms idle=720.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:32.067 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:32.068 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:32.068 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:04:32.069 [info] Sent 200 in 3ms 19:04:47.071 [info] {"source":"oban","duration":4376,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:05:00.819 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:05:12.011 [info] GET /sources/30/media/1907515 19:05:12.011 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1907515", "source_id" => "30"} Pipelines: [:browser] 19:05:12.011 [debug] QUERY OK source="media_items" db=0.1ms idle=1664.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" = ?) [1907515] 19:05:12.011 [debug] QUERY OK source="tasks" db=0.1ms idle=1664.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" [1907515] 19:05:12.012 [debug] QUERY OK source="sources" db=0.1ms idle=718.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:05:12.012 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=665.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" = ?) [88000] 19:05:12.012 [debug] QUERY OK source="settings" db=0.0ms idle=665.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:05:12.012 [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 [] 19:05:12.013 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:05:12.013 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:05:12.014 [info] Sent 200 in 3ms 19:05:17.074 [info] {"source":"oban","duration":3107,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:05:20.814 [info] GET /sources/29/media/1907774 19:05:20.815 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1907774", "source_id" => "29"} Pipelines: [:browser] 19:05:20.815 [debug] QUERY OK source="media_items" db=0.4ms idle=1468.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" = ?) [1907774] 19:05:20.816 [debug] QUERY OK source="sources" db=0.2ms idle=1468.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [29] 19:05:20.816 [debug] QUERY OK source="tasks" db=0.4ms idle=1468.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" [1907774] 19:05:20.816 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=508.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 (?,?)) [88012, 88108] 19:05:20.816 [debug] QUERY OK source="settings" db=0.0ms idle=469.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:05:20.817 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:05:20.817 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:05:20.817 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:05:20.818 [info] Sent 200 in 3ms 19:05:47.078 [info] {"source":"oban","duration":2590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:06:00.820 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:06:17.082 [info] {"source":"oban","duration":3677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:06:26.433 [info] GET /sources/43/media/1808956 19:06:26.433 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1808956", "source_id" => "43"} Pipelines: [:browser] 19:06:26.434 [debug] QUERY OK source="media_items" db=0.1ms idle=87.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" = ?) [1808956] 19:06:26.434 [debug] QUERY OK source="tasks" db=0.0ms idle=87.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" [1808956] 19:06:26.434 [debug] QUERY OK source="sources" db=0.1ms idle=87.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:06:26.434 [debug] QUERY OK source="oban_jobs" db=0.1ms 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" = ?) [76439] 19:06:26.435 [debug] QUERY OK source="settings" db=0.0ms idle=33.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:06:26.435 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:06:26.435 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:06:26.436 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:06:26.436 [info] Sent 200 in 3ms 19:06:47.085 [info] {"source":"oban","duration":3342,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:07:00.821 [info] {"source":"oban","duration":153,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:07:17.090 [info] {"source":"oban","duration":3540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:07:47.094 [info] {"source":"oban","duration":3854,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:08:00.822 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:08:17.098 [info] {"source":"oban","duration":2332,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:35.203 [info] GET /sources/35/media/1899036 19:08:35.203 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1899036", "source_id" => "35"} Pipelines: [:browser] 19:08:35.203 [debug] QUERY OK source="media_items" db=0.1ms idle=856.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" = ?) [1899036] 19:08:35.203 [debug] QUERY OK source="tasks" db=0.1ms idle=857.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" [1899036] 19:08:35.204 [debug] QUERY OK source="sources" db=0.1ms idle=857.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:08:35.204 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=857.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" = ?) [87605] 19:08:35.204 [debug] QUERY OK source="settings" db=0.0ms idle=658.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:35.204 [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 [] 19:08:35.204 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:35.205 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:35.206 [info] Sent 200 in 3ms 19:08:35.393 [info] GET /sources/43/media/1801607 19:08:35.393 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1801607", "source_id" => "43"} Pipelines: [:browser] 19:08:35.394 [debug] QUERY OK source="media_items" db=0.2ms idle=189.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" = ?) [1801607] 19:08:35.394 [debug] QUERY OK source="tasks" db=0.1ms idle=190.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" [1801607] 19:08:35.394 [debug] QUERY OK source="sources" db=0.1ms idle=189.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:08:35.395 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=190.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 (?,?)) [75282, 87855] 19:08:35.395 [debug] QUERY OK source="settings" db=0.0ms idle=190.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:35.395 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:35.395 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:35.396 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:35.397 [info] Sent 200 in 3ms 19:08:46.568 [info] {"args":{"id":35},"id":88124,"meta":{},"system_time":1767229726568427460,"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"]} 19:08:46.568 [debug] QUERY OK source="sources" db=0.1ms idle=1222.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:08:46.569 [debug] QUERY OK source="settings" db=0.1ms idle=1222.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:46.571 [debug] QUERY OK source="media_items" db=2.6ms idle=1009.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] 19:08:46.572 [debug] QUERY OK source="media_items" db=0.2ms idle=10.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 19:08:46.572 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 19:08:46.572 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:46.572 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:46.575 [debug] QUERY OK source="media_items" db=1.5ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [35] 19:08:46.577 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:08:46.577 [debug] Current batch of media processed. Will check again in 1000ms 19:08:46.577 [debug] QUERY OK source="settings" db=0.0ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:46.578 [debug] QUERY OK source="settings" db=0.0ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:46.578 [debug] QUERY OK source="settings" db=0.0ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:46.578 [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/92/b692a05d0e04c58081e5c92627aadf428ab7447e3ab6cf823a201f3dc9aaaec0.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/54/46/5446e166c93d4b7ff76522fed9cb61eb4af36779c2e3f95a3d81697eb2d75650.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:08:47.102 [info] {"source":"oban","duration":3556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:47.578 [debug] Current batch of media processed. Will check again in 1000ms 19:08:48.579 [debug] Current batch of media processed. Will check again in 1000ms 19:08:49.580 [debug] Current batch of media processed. Will check again in 1000ms 19:08:50.581 [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" => 1, "timestamp" => 1767103216, "title" => "'cut' - cut sections from lines of text - Video Man Pages", "upload_date" => "20251230"} 19:08:50.582 [debug] QUERY OK source="sources" db=0.2ms idle=235.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:08:50.582 [debug] QUERY OK source="sources" db=0.1ms idle=235.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:08:50.585 [debug] QUERY OK source="media_items" db=2.4ms idle=236.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-30 14:00:16Z], 35] 19:08:50.586 [debug] QUERY OK source="media_items" db=0.9ms idle=238.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "9ff7026e-32e0-4c4e-b38a-6a3817f57db3", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", false, "9hoTL0GP2uQ", 35, [], 283, false, 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, 98, ~U[2025-12-30 14:00:16Z], ~U[2026-01-01 01:08:50Z], ~U[2026-01-01 01:08:50Z], "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", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "9hoTL0GP2uQ", 35, 283, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, ~U[2025-12-30 14:00:16Z]] 19:08:50.586 [debug] QUERY OK source="sources" db=0.1ms idle=17.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:08:50.586 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:50.587 [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 [1899036] 19:08:50.587 [debug] Current batch of media processed. Will check again in 1000ms 19:08:51.588 [debug] Current batch of media processed. Will check again in 1000ms 19:08:52.590 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 664, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", "id" => "dspEVA8eoUg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dspEVA8eoUg", "playlist_index" => 2, "timestamp" => 1766671272, "title" => "A \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "upload_date" => "20251225"} 19:08:52.590 [debug] QUERY OK source="sources" db=0.2ms idle=243.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:08:52.591 [debug] QUERY OK source="sources" db=0.1ms idle=244.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:08:52.594 [debug] QUERY OK source="media_items" db=2.6ms idle=244.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-25 14:01:12Z], 35] 19:08:52.595 [debug] QUERY OK source="media_items" db=0.8ms idle=247.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "d3da760c-4a04-4f0a-9464-d80b6bf6477c", "https://www.youtube.com/watch?v=dspEVA8eoUg", false, "dspEVA8eoUg", 35, [], 664, false, 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, false, 98, ~U[2025-12-25 14:01:12Z], ~U[2026-01-01 01:08:52Z], ~U[2026-01-01 01:08:52Z], "Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "https://www.youtube.com/watch?v=dspEVA8eoUg", "dspEVA8eoUg", 35, 664, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, ~U[2025-12-25 14:01:12Z]] 19:08:52.595 [debug] QUERY OK source="sources" db=0.1ms idle=22.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:08:52.595 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:52.596 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1858950] 19:08:52.596 [debug] Current batch of media processed. Will check again in 1000ms 19:08:53.596 [debug] Current batch of media processed. Will check again in 1000ms 19:08:54.597 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 968, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", "id" => "cQ3auCVzfrA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cQ3auCVzfrA", "playlist_index" => 3, "timestamp" => 1766412066, "title" => "Linux and Open Source Software In 2025", "upload_date" => "20251222"} 19:08:54.598 [debug] QUERY OK source="sources" db=0.2ms idle=251.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [35] 19:08:54.598 [debug] QUERY OK source="sources" db=0.1ms idle=251.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:08:54.601 [debug] QUERY OK source="media_items" db=2.4ms idle=251.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-22 14:01:06Z], 35] 19:08:54.602 [debug] QUERY OK source="media_items" db=0.7ms idle=254.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "3e25a7d6-9724-4d56-a45f-c845ee2c103b", "https://www.youtube.com/watch?v=cQ3auCVzfrA", false, "cQ3auCVzfrA", 35, [], 968, false, 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, false, 98, ~U[2025-12-22 14:01:06Z], ~U[2026-01-01 01:08:54Z], ~U[2026-01-01 01:08:54Z], "A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "https://www.youtube.com/watch?v=cQ3auCVzfrA", "cQ3auCVzfrA", 35, 968, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, ~U[2025-12-22 14:01:06Z]] 19:08:54.602 [debug] QUERY OK source="sources" db=0.1ms idle=26.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:08:54.602 [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] 19:08:54.603 [debug] QUERY OK source="media_items" db=0.1ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1835064] 19:08:54.603 [debug] Current batch of media processed. Will check again in 1000ms 19:08:55.603 [debug] Current batch of media processed. Will check again in 1000ms 19:08:56.605 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 1227, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", "id" => "s5ujjhWrGQI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s5ujjhWrGQI", "playlist_index" => 4, "timestamp" => 1766152471, "title" => "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "upload_date" => "20251219"} 19:08:56.605 [debug] QUERY OK source="sources" db=0.2ms idle=259.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:08:56.606 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms 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" = ?) [35] 19:08:56.609 [debug] QUERY OK source="media_items" db=2.4ms idle=260.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-19 13:54:31Z], 35] 19:08:56.610 [debug] QUERY OK source="media_items" db=0.9ms idle=262.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "1062ca35-959d-45c1-b113-a77cda810fad", "https://www.youtube.com/watch?v=s5ujjhWrGQI", false, "s5ujjhWrGQI", 35, [], 1227, false, 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, false, 98, ~U[2025-12-19 13:54:31Z], ~U[2026-01-01 01:08:56Z], ~U[2026-01-01 01:08:56Z], "Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "https://www.youtube.com/watch?v=s5ujjhWrGQI", "s5ujjhWrGQI", 35, 1227, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, ~U[2025-12-19 13:54:31Z]] 19:08:56.610 [debug] QUERY OK source="sources" db=0.1ms idle=30.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:08:56.610 [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] 19:08:56.611 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1810884] 19:08:56.611 [debug] Current batch of media processed. Will check again in 1000ms 19:08:57.611 [debug] Current batch of media processed. Will check again in 1000ms 19:08:58.613 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 802, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", "id" => "f5_JlqPkmWc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f5_JlqPkmWc", "playlist_index" => 5, "timestamp" => 1765893675, "title" => "Open Source Apps So Good, I'd Pay For Them!", "upload_date" => "20251216"} 19:08:58.613 [debug] QUERY OK source="sources" db=0.1ms idle=266.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [35] 19:08:58.614 [debug] QUERY OK source="sources" db=0.1ms idle=267.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:08:58.616 [debug] QUERY OK source="media_items" db=2.5ms idle=267.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 14:01:15Z], 35] 19:08:58.617 [debug] QUERY OK source="media_items" db=0.8ms idle=270.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "884077bb-17fa-409f-8fa0-76ddbcf94b90", "https://www.youtube.com/watch?v=f5_JlqPkmWc", false, "f5_JlqPkmWc", 35, [], 802, false, 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, false, 98, ~U[2025-12-16 14:01:15Z], ~U[2026-01-01 01:08:58Z], ~U[2026-01-01 01:08:58Z], "It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "https://www.youtube.com/watch?v=f5_JlqPkmWc", "f5_JlqPkmWc", 35, 802, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, ~U[2025-12-16 14:01:15Z]] 19:08:58.618 [debug] QUERY OK source="sources" db=0.1ms idle=34.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:08:58.618 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:58.618 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1787419] 19:08:58.618 [debug] Current batch of media processed. Will check again in 1000ms 19:08:59.619 [debug] Current batch of media processed. Will check again in 1000ms 19:09:00.620 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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" => 595, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", "id" => "B6Dbvs-q1zw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=B6Dbvs-q1zw", "playlist_index" => 6, "timestamp" => 1765634419, "title" => "Setting Up Virt-Manager On Linux", "upload_date" => "20251213"} 19:09:00.621 [debug] QUERY OK source="sources" db=0.2ms 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" IN (?)) [35] 19:09:00.621 [debug] QUERY OK source="sources" db=0.0ms idle=274.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:00.624 [debug] QUERY OK source="media_items" db=2.6ms idle=274.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-13 14:00:19Z], 35] 19:09:00.629 [debug] QUERY OK source="media_items" db=4.4ms idle=277.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "64b3efc0-1c85-487d-a8d8-578ad9be47a5", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", false, "B6Dbvs-q1zw", 35, [], 595, false, 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, false, 98, ~U[2025-12-13 14:00:19Z], ~U[2026-01-01 01:09:00Z], ~U[2026-01-01 01:09:00Z], "Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", "B6Dbvs-q1zw", 35, 595, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, ~U[2025-12-13 14:00:19Z]] 19:09:00.629 [debug] QUERY OK source="sources" db=0.1ms idle=43.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:00.629 [debug] QUERY OK source="media_profiles" db=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] 19:09:00.630 [debug] QUERY OK source="media_items" db=0.2ms idle=8.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1763736] 19:09:00.630 [debug] Current batch of media processed. Will check again in 1000ms 19:09:00.823 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:09:01.630 [debug] Current batch of media processed. Will check again in 1000ms 19:09:02.631 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 1292, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", "id" => "cTmvp0tnUmY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cTmvp0tnUmY", "playlist_index" => 7, "timestamp" => 1765375270, "title" => "Two Simple Bash Scripts ('append' and 'prepend')", "upload_date" => "20251210"} 19:09:02.632 [debug] QUERY OK source="sources" db=0.1ms idle=285.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:02.632 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [35] 19:09:02.634 [debug] QUERY OK source="media_items" db=2.3ms 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[2025-12-10 14:01:10Z], 35] 19:09:02.636 [debug] QUERY OK source="media_items" db=1.0ms idle=288.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "77ddcdde-423d-42da-9ef7-c9d61018081f", "https://www.youtube.com/watch?v=cTmvp0tnUmY", false, "cTmvp0tnUmY", 35, [], 1292, false, 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, false, 98, ~U[2025-12-10 14:01:10Z], ~U[2026-01-01 01:09:02Z], ~U[2026-01-01 01:09:02Z], "Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "https://www.youtube.com/watch?v=cTmvp0tnUmY", "cTmvp0tnUmY", 35, 1292, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, ~U[2025-12-10 14:01:10Z]] 19:09:02.636 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:02.636 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:02.636 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1739901] 19:09:02.636 [debug] Current batch of media processed. Will check again in 1000ms 19:09:03.637 [debug] Current batch of media processed. Will check again in 1000ms 19:09:04.638 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 881, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", "id" => "lzSvFAGV3ms", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lzSvFAGV3ms", "playlist_index" => 8, "timestamp" => 1765116079, "title" => "Tweaking The Look Of The Qtile Panel", "upload_date" => "20251207"} 19:09:04.639 [debug] QUERY OK source="sources" db=0.1ms idle=292.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:04.639 [debug] QUERY OK source="sources" db=0.1ms idle=292.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:04.642 [debug] QUERY OK source="media_items" db=2.5ms idle=293.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-07 14:01:19Z], 35] 19:09:04.643 [debug] QUERY OK source="media_items" db=0.7ms idle=295.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "0236b13d-b3dc-4a7f-9b94-8f930d5ac8c0", "https://www.youtube.com/watch?v=lzSvFAGV3ms", false, "lzSvFAGV3ms", 35, [], 881, false, 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, false, 98, ~U[2025-12-07 14:01:19Z], ~U[2026-01-01 01:09:04Z], ~U[2026-01-01 01:09:04Z], "Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "https://www.youtube.com/watch?v=lzSvFAGV3ms", "lzSvFAGV3ms", 35, 881, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, ~U[2025-12-07 14:01:19Z]] 19:09:04.643 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms 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" = ?) [35] 19:09:04.643 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:04.644 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1716297] 19:09:04.644 [debug] Current batch of media processed. Will check again in 1000ms 19:09:05.645 [debug] Current batch of media processed. Will check again in 1000ms 19:09:06.646 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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" => 265, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", "id" => "sbGetz7R_nY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sbGetz7R_nY", "playlist_index" => 9, "timestamp" => 1764856898, "title" => "'tac' - concatenate and print in reverse - Video Man Pages", "upload_date" => "20251204"} 19:09:06.647 [debug] QUERY OK source="sources" db=0.1ms idle=300.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:06.647 [debug] QUERY OK source="sources" db=0.0ms idle=300.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:06.650 [debug] QUERY OK source="media_items" db=2.5ms idle=301.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-04 14:01:38Z], 35] 19:09:06.651 [debug] QUERY OK source="media_items" db=0.8ms idle=303.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "9c427f38-aa53-4ffb-af5e-bb9ce76b0592", "https://www.youtube.com/watch?v=sbGetz7R_nY", false, "sbGetz7R_nY", 35, [], 265, false, 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, false, 98, ~U[2025-12-04 14:01:38Z], ~U[2026-01-01 01:09:06Z], ~U[2026-01-01 01:09:06Z], "The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "https://www.youtube.com/watch?v=sbGetz7R_nY", "sbGetz7R_nY", 35, 265, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, ~U[2025-12-04 14:01:38Z]] 19:09:06.651 [debug] QUERY OK source="sources" db=0.1ms idle=58.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:06.652 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:06.652 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1692095] 19:09:06.652 [debug] Current batch of media processed. Will check again in 1000ms 19:09:07.653 [debug] Current batch of media processed. Will check again in 1000ms 19:09:08.654 [debug] Current batch of media processed. Will check again in 1000ms 19:09:09.655 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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" => 423, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", "id" => "HKuP4UjG9_U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HKuP4UjG9_U", "playlist_index" => 10, "timestamp" => 1764684023, "title" => "'cat' - concatenate and print files - Video Man Pages", "upload_date" => "20251202"} 19:09:09.656 [debug] QUERY OK source="sources" db=0.1ms idle=1309.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:09.656 [debug] QUERY OK source="sources" db=0.1ms idle=1309.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:09.659 [debug] QUERY OK source="media_items" db=2.4ms idle=1310.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-02 14:00:23Z], 35] 19:09:09.660 [debug] QUERY OK source="media_items" db=0.7ms idle=1063.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "8611daa6-96a3-4dbe-98d2-a4e35d9cc48c", "https://www.youtube.com/watch?v=HKuP4UjG9_U", false, "HKuP4UjG9_U", 35, [], 423, false, 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, false, 98, ~U[2025-12-02 14:00:23Z], ~U[2026-01-01 01:09:09Z], ~U[2026-01-01 01:09:09Z], "The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "https://www.youtube.com/watch?v=HKuP4UjG9_U", "HKuP4UjG9_U", 35, 423, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, ~U[2025-12-02 14:00:23Z]] 19:09:09.660 [debug] QUERY OK source="sources" db=0.1ms idle=62.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:09.661 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:09.661 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1676558] 19:09:09.661 [debug] Current batch of media processed. Will check again in 1000ms 19:09:10.662 [debug] Current batch of media processed. Will check again in 1000ms 19:09:11.664 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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" => 1090, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", "id" => "hQsQJ7uhDGA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hQsQJ7uhDGA", "playlist_index" => 11, "timestamp" => 1764252078, "title" => "I use CachyOS, btw!", "upload_date" => "20251127"} 19:09:11.664 [debug] QUERY OK source="sources" db=0.1ms idle=317.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:11.665 [debug] QUERY OK source="sources" db=0.2ms idle=318.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:11.667 [debug] QUERY OK source="media_items" db=2.4ms idle=318.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-27 14:01:18Z], 35] 19:09:11.668 [debug] QUERY OK source="media_items" db=0.8ms idle=321.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "1c946a8d-539c-49bb-b3c8-c2809ffb48bf", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", false, "hQsQJ7uhDGA", 35, [], 1090, false, 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, false, 98, ~U[2025-11-27 14:01:18Z], ~U[2026-01-01 01:09:11Z], ~U[2026-01-01 01:09:11Z], "So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", "hQsQJ7uhDGA", 35, 1090, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, ~U[2025-11-27 14:01:18Z]] 19:09:11.669 [debug] QUERY OK source="sources" db=0.1ms idle=68.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:11.669 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:11.669 [debug] QUERY OK source="media_items" db=0.2ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1637457] 19:09:11.669 [debug] Current batch of media processed. Will check again in 1000ms 19:09:12.670 [debug] Current batch of media processed. Will check again in 1000ms 19:09:13.671 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 320, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", "id" => "2g-ceq7Jwc0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2g-ceq7Jwc0", "playlist_index" => 12, "timestamp" => 1763992807, "title" => "Cavalier Is An Audio Visualizer For Linux", "upload_date" => "20251124"} 19:09:13.672 [debug] QUERY OK source="sources" db=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 (?)) [35] 19:09:13.672 [debug] QUERY OK source="sources" db=0.0ms idle=325.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:13.675 [debug] QUERY OK source="media_items" db=2.4ms idle=326.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-24 14:00:07Z], 35] 19:09:13.676 [debug] QUERY OK source="media_items" db=0.7ms idle=328.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "88a7b75d-ac13-41c3-8373-4289f6b93d93", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", false, "2g-ceq7Jwc0", 35, [], 320, false, 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, false, 98, ~U[2025-11-24 14:00:07Z], ~U[2026-01-01 01:09:13Z], ~U[2026-01-01 01:09:13Z], "Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", "2g-ceq7Jwc0", 35, 320, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, ~U[2025-11-24 14:00:07Z]] 19:09:13.676 [debug] QUERY OK source="sources" db=0.1ms idle=72.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:13.676 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:13.677 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1614035] 19:09:13.677 [debug] Current batch of media processed. Will check again in 1000ms 19:09:14.677 [debug] Current batch of media processed. Will check again in 1000ms 19:09:15.679 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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" => 572, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", "id" => "JMIQwysKk1c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JMIQwysKk1c", "playlist_index" => 13, "timestamp" => 1763733626, "title" => "'touch' - change file timestamps - Video Man Pages", "upload_date" => "20251121"} 19:09:15.680 [debug] QUERY OK source="sources" db=0.2ms idle=333.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:15.680 [debug] QUERY OK source="sources" db=0.0ms idle=333.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:15.683 [debug] QUERY OK source="media_items" db=2.4ms idle=333.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-21 14:00:26Z], 35] 19:09:15.684 [debug] QUERY OK source="media_items" db=1.0ms idle=336.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "ea6bfc51-d5be-446a-a4fe-4a7792f96f8d", "https://www.youtube.com/watch?v=JMIQwysKk1c", false, "JMIQwysKk1c", 35, [], 572, false, 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, false, 98, ~U[2025-11-21 14:00:26Z], ~U[2026-01-01 01:09:15Z], ~U[2026-01-01 01:09:15Z], "The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "https://www.youtube.com/watch?v=JMIQwysKk1c", "JMIQwysKk1c", 35, 572, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, ~U[2025-11-21 14:00:26Z]] 19:09:15.684 [debug] QUERY OK source="sources" db=0.2ms idle=78.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:15.684 [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] 19:09:15.685 [debug] QUERY OK source="media_items" db=0.2ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1590315] 19:09:15.685 [debug] Current batch of media processed. Will check again in 1000ms 19:09:16.686 [debug] Current batch of media processed. Will check again in 1000ms 19:09:17.105 [info] {"source":"oban","duration":3430,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:09:17.687 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 1336, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", "id" => "vH-iCfqfLU8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vH-iCfqfLU8", "playlist_index" => 14, "timestamp" => 1763474499, "title" => "Hey, DT! It's Nice To See You Screw Things Up...", "upload_date" => "20251118"} 19:09:17.688 [debug] QUERY OK source="sources" db=0.2ms idle=582.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:17.688 [debug] QUERY OK source="sources" db=0.1ms idle=342.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:17.691 [debug] QUERY OK source="media_items" db=2.5ms idle=342.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-18 14:01:39Z], 35] 19:09:17.693 [debug] QUERY OK source="media_items" db=1.0ms idle=345.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "b3ef1207-6fb9-4f91-b169-1e61f586f5d1", "https://www.youtube.com/watch?v=vH-iCfqfLU8", false, "vH-iCfqfLU8", 35, [], 1336, false, 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, false, 98, ~U[2025-11-18 14:01:39Z], ~U[2026-01-01 01:09:17Z], ~U[2026-01-01 01:09:17Z], "On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "https://www.youtube.com/watch?v=vH-iCfqfLU8", "vH-iCfqfLU8", 35, 1336, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, ~U[2025-11-18 14:01:39Z]] 19:09:17.693 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 19:09:17.693 [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] 19:09:17.694 [debug] QUERY OK source="media_items" db=0.2ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1568007] 19:09:17.694 [debug] Current batch of media processed. Will check again in 1000ms 19:09:18.694 [debug] Current batch of media processed. Will check again in 1000ms 19:09:19.696 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 469, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", "id" => "0jqPu31ZvOc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0jqPu31ZvOc", "playlist_index" => 15, "timestamp" => 1763215202, "title" => "Send Files Over Local Network With LocalSend", "upload_date" => "20251115"} 19:09:19.696 [debug] QUERY OK source="sources" db=0.1ms idle=349.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:19.696 [debug] QUERY OK source="sources" db=0.1ms idle=350.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:19.699 [debug] QUERY OK source="media_items" db=2.4ms idle=350.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-15 14:00:02Z], 35] 19:09:19.700 [debug] QUERY OK source="media_items" db=0.7ms idle=352.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "5bade4cf-455b-4aea-a217-0083f1fddab0", "https://www.youtube.com/watch?v=0jqPu31ZvOc", false, "0jqPu31ZvOc", 35, [], 469, false, 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, false, 98, ~U[2025-11-15 14:00:02Z], ~U[2026-01-01 01:09:19Z], ~U[2026-01-01 01:09:19Z], "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "https://www.youtube.com/watch?v=0jqPu31ZvOc", "0jqPu31ZvOc", 35, 469, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, ~U[2025-11-15 14:00:02Z]] 19:09:19.700 [debug] QUERY OK source="sources" db=0.1ms idle=88.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:19.700 [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] 19:09:19.701 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1540920] 19:09:19.701 [debug] Current batch of media processed. Will check again in 1000ms 19:09:20.701 [debug] Current batch of media processed. Will check again in 1000ms 19:09:21.702 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 251, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", "id" => "H7W4k9YXKGM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=H7W4k9YXKGM", "playlist_index" => 16, "timestamp" => 1762956028, "title" => "These Linux Apps Keep Me From Going Back To Windows", "upload_date" => "20251112"} 19:09:21.703 [debug] QUERY OK source="sources" db=0.2ms idle=356.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:21.703 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 19:09:21.706 [debug] QUERY OK source="media_items" db=2.5ms idle=357.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-12 14:00:28Z], 35] 19:09:21.707 [debug] QUERY OK source="media_items" db=0.7ms idle=359.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "76a2e96f-e704-4dfa-aa43-ede313503d1d", "https://www.youtube.com/watch?v=H7W4k9YXKGM", false, "H7W4k9YXKGM", 35, [], 251, false, 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, false, 98, ~U[2025-11-12 14:00:28Z], ~U[2026-01-01 01:09:21Z], ~U[2026-01-01 01:09:21Z], "Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "https://www.youtube.com/watch?v=H7W4k9YXKGM", "H7W4k9YXKGM", 35, 251, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, ~U[2025-11-12 14:00:28Z]] 19:09:21.707 [debug] QUERY OK source="sources" db=0.2ms idle=92.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:21.707 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:21.708 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1517101] 19:09:21.708 [debug] Current batch of media processed. Will check again in 1000ms 19:09:22.708 [debug] Current batch of media processed. Will check again in 1000ms 19:09:23.709 [debug] Current batch of media processed. Will check again in 1000ms 19:09:24.710 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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" => 918, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", "id" => "p9dmUn4IeT4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=p9dmUn4IeT4", "playlist_index" => 17, "timestamp" => 1762696878, "title" => "A Quick First Look At Fedora 43", "upload_date" => "20251109"} 19:09:24.711 [debug] QUERY OK source="sources" db=0.2ms idle=1364.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:24.711 [debug] QUERY OK source="sources" db=0.1ms idle=1364.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:24.714 [debug] QUERY OK source="media_items" db=2.6ms idle=1364.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-09 14:01:18Z], 35] 19:09:24.715 [debug] QUERY OK source="media_items" db=0.7ms idle=1096.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "a44a908c-10cb-4d9c-a781-c48b9ad44a3d", "https://www.youtube.com/watch?v=p9dmUn4IeT4", false, "p9dmUn4IeT4", 35, [], 918, false, 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, false, 98, ~U[2025-11-09 14:01:18Z], ~U[2026-01-01 01:09:24Z], ~U[2026-01-01 01:09:24Z], "In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "https://www.youtube.com/watch?v=p9dmUn4IeT4", "p9dmUn4IeT4", 35, 918, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, ~U[2025-11-09 14:01:18Z]] 19:09:24.715 [debug] QUERY OK source="sources" db=0.1ms idle=95.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:24.715 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:24.716 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1493725] 19:09:24.716 [debug] Current batch of media processed. Will check again in 1000ms 19:09:25.716 [debug] Current batch of media processed. Will check again in 1000ms 19:09:26.717 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 582, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", "id" => "Tu_pKh51kcM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Tu_pKh51kcM", "playlist_index" => 18, "timestamp" => 1762437662, "title" => "The Fragmentation Problem Within Linux - Is It Real Or Fake News?", "upload_date" => "20251106"} 19:09:26.718 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=370.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:26.718 [debug] QUERY OK source="sources" db=0.1ms idle=371.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:26.721 [debug] QUERY OK source="media_items" db=2.5ms idle=371.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-06 14:01:02Z], 35] 19:09:26.722 [debug] QUERY OK source="media_items" db=0.7ms idle=374.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "302a420b-bc6d-4617-b814-14c8ae378d12", "https://www.youtube.com/watch?v=Tu_pKh51kcM", false, "Tu_pKh51kcM", 35, [], 582, false, 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, false, 98, ~U[2025-11-06 14:01:02Z], ~U[2026-01-01 01:09:26Z], ~U[2026-01-01 01:09:26Z], "Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "https://www.youtube.com/watch?v=Tu_pKh51kcM", "Tu_pKh51kcM", 35, 582, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, ~U[2025-11-06 14:01:02Z]] 19:09:26.722 [debug] QUERY OK source="sources" db=0.1ms idle=99.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:09:26.723 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 19:09:26.723 [debug] QUERY OK source="media_items" db=0.2ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1470625] 19:09:26.723 [debug] Current batch of media processed. Will check again in 1000ms 19:09:27.724 [debug] Current batch of media processed. Will check again in 1000ms 19:09:28.725 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 781, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", "id" => "7OSUgn0f6VU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7OSUgn0f6VU", "playlist_index" => 19, "timestamp" => 1762178418, "title" => "TRMNL Is An Open Source E Ink Display", "upload_date" => "20251103"} 19:09:28.726 [debug] QUERY OK source="sources" db=0.2ms idle=379.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:28.726 [debug] QUERY OK source="sources" db=0.1ms idle=379.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:28.729 [debug] QUERY OK source="media_items" db=3.3ms idle=379.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-03 14:00:18Z], 35] 19:09:28.731 [debug] QUERY OK source="media_items" db=0.8ms idle=383.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "22e8d052-3ed3-4907-96cf-22c1c6b1340c", "https://www.youtube.com/watch?v=7OSUgn0f6VU", false, "7OSUgn0f6VU", 35, [], 781, false, 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, false, 98, ~U[2025-11-03 14:00:18Z], ~U[2026-01-01 01:09:28Z], ~U[2026-01-01 01:09:28Z], "TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "https://www.youtube.com/watch?v=7OSUgn0f6VU", "7OSUgn0f6VU", 35, 781, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, ~U[2025-11-03 14:00:18Z]] 19:09:28.731 [debug] QUERY OK source="sources" db=0.1ms idle=104.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:28.731 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:28.732 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1447387] 19:09:28.732 [debug] Current batch of media processed. Will check again in 1000ms 19:09:29.732 [debug] Current batch of media processed. Will check again in 1000ms 19:09:30.529 [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/92/b692a05d0e04c58081e5c92627aadf428ab7447e3ab6cf823a201f3dc9aaaec0.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/54/46/5446e166c93d4b7ff76522fed9cb61eb4af36779c2e3f95a3d81697eb2d75650.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:09:30.530 [debug] Gracefully stopping file follower 19:09:30.530 [debug] QUERY OK source="sources" db=0.2ms idle=902.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:09:30.530 [debug] QUERY OK source="sources" db=0.0ms idle=184.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:30.533 [debug] QUERY OK source="media_items" db=2.5ms idle=184.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] 19:09:30.534 [debug] QUERY OK source="media_items" db=0.8ms idle=186.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "b1aa2eee-a5ad-49a5-8b1c-5c00ce7ebc47", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", false, "9hoTL0GP2uQ", 35, [], 283, false, 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, 98, ~U[2025-12-30 14:00:16Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "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", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "9hoTL0GP2uQ", 35, 283, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, ~U[2025-12-30 14:00:16Z]] 19:09:30.534 [debug] QUERY OK source="sources" db=0.1ms idle=188.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.537 [debug] QUERY OK source="media_items" db=2.3ms 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-25 14:01:12Z], 35] 19:09:30.538 [debug] QUERY OK source="media_items" db=0.7ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "4d1387aa-0cf6-4f11-b900-ee1b6d55e2a0", "https://www.youtube.com/watch?v=dspEVA8eoUg", false, "dspEVA8eoUg", 35, [], 664, false, 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, false, 98, ~U[2025-12-25 14:01:12Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "https://www.youtube.com/watch?v=dspEVA8eoUg", "dspEVA8eoUg", 35, 664, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, ~U[2025-12-25 14:01:12Z]] 19:09:30.538 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.541 [debug] QUERY OK source="media_items" db=2.2ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-22 14:01:06Z], 35] 19:09:30.543 [debug] QUERY OK source="media_items" db=2.3ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "8bdf284b-453d-448c-9002-4e9df74cc7fc", "https://www.youtube.com/watch?v=cQ3auCVzfrA", false, "cQ3auCVzfrA", 35, [], 968, false, 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, false, 98, ~U[2025-12-22 14:01:06Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "https://www.youtube.com/watch?v=cQ3auCVzfrA", "cQ3auCVzfrA", 35, 968, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, ~U[2025-12-22 14:01:06Z]] 19:09:30.544 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [35] 19:09:30.546 [debug] QUERY OK source="media_items" db=2.2ms 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[2025-12-19 13:54:31Z], 35] 19:09:30.547 [debug] QUERY OK source="media_items" db=0.9ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "b3a4d571-8c49-4e46-8530-7b1e959310fe", "https://www.youtube.com/watch?v=s5ujjhWrGQI", false, "s5ujjhWrGQI", 35, [], 1227, false, 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, false, 98, ~U[2025-12-19 13:54:31Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "https://www.youtube.com/watch?v=s5ujjhWrGQI", "s5ujjhWrGQI", 35, 1227, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, ~U[2025-12-19 13:54:31Z]] 19:09:30.548 [debug] QUERY OK source="sources" db=0.3ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.550 [debug] QUERY OK source="media_items" db=2.2ms 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-16 14:01:15Z], 35] 19:09:30.551 [debug] QUERY OK source="media_items" db=0.7ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "db9debf2-533c-43de-a79f-d83137df1c2b", "https://www.youtube.com/watch?v=f5_JlqPkmWc", false, "f5_JlqPkmWc", 35, [], 802, false, 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, false, 98, ~U[2025-12-16 14:01:15Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "https://www.youtube.com/watch?v=f5_JlqPkmWc", "f5_JlqPkmWc", 35, 802, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, ~U[2025-12-16 14:01:15Z]] 19:09:30.552 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.554 [debug] QUERY OK source="media_items" db=2.1ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-13 14:00:19Z], 35] 19:09:30.555 [debug] QUERY OK source="media_items" db=0.8ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "db106aa9-dbce-4474-98ca-f3f48dd53d29", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", false, "B6Dbvs-q1zw", 35, [], 595, false, 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, false, 98, ~U[2025-12-13 14:00:19Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", "B6Dbvs-q1zw", 35, 595, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, ~U[2025-12-13 14:00:19Z]] 19:09:30.556 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.558 [debug] QUERY OK source="media_items" db=2.5ms 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[2025-12-10 14:01:10Z], 35] 19:09:30.559 [debug] QUERY OK source="media_items" db=0.8ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "99fb38ca-3173-4b72-ad0b-77125b86ae25", "https://www.youtube.com/watch?v=cTmvp0tnUmY", false, "cTmvp0tnUmY", 35, [], 1292, false, 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, false, 98, ~U[2025-12-10 14:01:10Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "https://www.youtube.com/watch?v=cTmvp0tnUmY", "cTmvp0tnUmY", 35, 1292, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, ~U[2025-12-10 14:01:10Z]] 19:09:30.560 [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" = ?) [35] 19:09:30.563 [debug] QUERY OK source="media_items" db=2.3ms 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-07 14:01:19Z], 35] 19:09:30.564 [debug] QUERY OK source="media_items" db=0.8ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "7eb2aa4e-76b4-4702-8823-ef802550d5b7", "https://www.youtube.com/watch?v=lzSvFAGV3ms", false, "lzSvFAGV3ms", 35, [], 881, false, 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, false, 98, ~U[2025-12-07 14:01:19Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "https://www.youtube.com/watch?v=lzSvFAGV3ms", "lzSvFAGV3ms", 35, 881, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, ~U[2025-12-07 14:01:19Z]] 19:09:30.564 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.567 [debug] QUERY OK source="media_items" db=2.3ms 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-12-04 14:01:38Z], 35] 19:09:30.568 [debug] QUERY OK source="media_items" db=0.9ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "ae27525b-e104-4f56-b04e-03540e53184e", "https://www.youtube.com/watch?v=sbGetz7R_nY", false, "sbGetz7R_nY", 35, [], 265, false, 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, false, 98, ~U[2025-12-04 14:01:38Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "https://www.youtube.com/watch?v=sbGetz7R_nY", "sbGetz7R_nY", 35, 265, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, ~U[2025-12-04 14:01:38Z]] 19:09:30.569 [debug] QUERY OK source="sources" db=0.4ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.571 [debug] QUERY OK source="media_items" db=2.3ms 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[2025-12-02 14:00:23Z], 35] 19:09:30.573 [debug] QUERY OK source="media_items" db=1.5ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "bb518ce1-8a07-4f25-a621-f648728ffa03", "https://www.youtube.com/watch?v=HKuP4UjG9_U", false, "HKuP4UjG9_U", 35, [], 423, false, 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, false, 98, ~U[2025-12-02 14:00:23Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "https://www.youtube.com/watch?v=HKuP4UjG9_U", "HKuP4UjG9_U", 35, 423, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, ~U[2025-12-02 14:00:23Z]] 19:09:30.573 [debug] QUERY OK source="sources" db=0.4ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.576 [debug] QUERY OK source="media_items" db=2.3ms 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-11-27 14:01:18Z], 35] 19:09:30.577 [debug] QUERY OK source="media_items" db=0.8ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "2b7164a9-b56f-40ad-af23-c151deddcac0", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", false, "hQsQJ7uhDGA", 35, [], 1090, false, 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, false, 98, ~U[2025-11-27 14:01:18Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", "hQsQJ7uhDGA", 35, 1090, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, ~U[2025-11-27 14:01:18Z]] 19:09:30.578 [debug] QUERY OK source="sources" db=0.4ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.580 [debug] QUERY OK source="media_items" db=2.2ms 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-24 14:00:07Z], 35] 19:09:30.581 [debug] QUERY OK source="media_items" db=0.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "8911751b-c5ba-4c55-acde-99ac24b7d75c", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", false, "2g-ceq7Jwc0", 35, [], 320, false, 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, false, 98, ~U[2025-11-24 14:00:07Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", "2g-ceq7Jwc0", 35, 320, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, ~U[2025-11-24 14:00:07Z]] 19:09:30.582 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.584 [debug] QUERY OK source="media_items" db=2.2ms 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-21 14:00:26Z], 35] 19:09:30.586 [debug] QUERY OK source="media_items" db=1.0ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "504d677a-dc22-408e-944b-907d915e481e", "https://www.youtube.com/watch?v=JMIQwysKk1c", false, "JMIQwysKk1c", 35, [], 572, false, 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, false, 98, ~U[2025-11-21 14:00:26Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "https://www.youtube.com/watch?v=JMIQwysKk1c", "JMIQwysKk1c", 35, 572, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, ~U[2025-11-21 14:00:26Z]] 19:09:30.586 [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" = ?) [35] 19:09:30.589 [debug] QUERY OK source="media_items" db=2.3ms 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[2025-11-18 14:01:39Z], 35] 19:09:30.590 [debug] QUERY OK source="media_items" db=1.0ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "b3b7d7c2-79f7-4bf4-b1e3-dd15dfdd2c37", "https://www.youtube.com/watch?v=vH-iCfqfLU8", false, "vH-iCfqfLU8", 35, [], 1336, false, 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, false, 98, ~U[2025-11-18 14:01:39Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "https://www.youtube.com/watch?v=vH-iCfqfLU8", "vH-iCfqfLU8", 35, 1336, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, ~U[2025-11-18 14:01:39Z]] 19:09:30.591 [debug] QUERY OK source="sources" db=0.4ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.593 [debug] QUERY OK source="media_items" db=2.3ms 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-11-15 14:00:02Z], 35] 19:09:30.594 [debug] QUERY OK source="media_items" db=0.8ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "b265c0c1-4232-4f00-b68a-e27dea64e193", "https://www.youtube.com/watch?v=0jqPu31ZvOc", false, "0jqPu31ZvOc", 35, [], 469, false, 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, false, 98, ~U[2025-11-15 14:00:02Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "https://www.youtube.com/watch?v=0jqPu31ZvOc", "0jqPu31ZvOc", 35, 469, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, ~U[2025-11-15 14:00:02Z]] 19:09:30.595 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.597 [debug] QUERY OK source="media_items" db=2.2ms 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 14:00:28Z], 35] 19:09:30.598 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "6fb4c5f7-0966-40ee-8325-db326675041b", "https://www.youtube.com/watch?v=H7W4k9YXKGM", false, "H7W4k9YXKGM", 35, [], 251, false, 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, false, 98, ~U[2025-11-12 14:00:28Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "https://www.youtube.com/watch?v=H7W4k9YXKGM", "H7W4k9YXKGM", 35, 251, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, ~U[2025-11-12 14:00:28Z]] 19:09:30.599 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.601 [debug] QUERY OK source="media_items" db=2.2ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-09 14:01:18Z], 35] 19:09:30.602 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "f026d0c7-06c1-4a5b-bd09-9a377ae0c32c", "https://www.youtube.com/watch?v=p9dmUn4IeT4", false, "p9dmUn4IeT4", 35, [], 918, false, 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, false, 98, ~U[2025-11-09 14:01:18Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "https://www.youtube.com/watch?v=p9dmUn4IeT4", "p9dmUn4IeT4", 35, 918, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, ~U[2025-11-09 14:01:18Z]] 19:09:30.603 [debug] QUERY OK source="sources" db=0.4ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.605 [debug] QUERY OK source="media_items" db=2.3ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 14:01:02Z], 35] 19:09:30.606 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "874fc05a-8857-46da-98d9-fb7e1924ded0", "https://www.youtube.com/watch?v=Tu_pKh51kcM", false, "Tu_pKh51kcM", 35, [], 582, false, 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, false, 98, ~U[2025-11-06 14:01:02Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "https://www.youtube.com/watch?v=Tu_pKh51kcM", "Tu_pKh51kcM", 35, 582, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, ~U[2025-11-06 14:01:02Z]] 19:09:30.607 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.609 [debug] QUERY OK source="media_items" db=2.2ms 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-03 14:00:18Z], 35] 19:09:30.610 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "f862d41d-532c-4dc9-abbd-c908247aebe1", "https://www.youtube.com/watch?v=7OSUgn0f6VU", false, "7OSUgn0f6VU", 35, [], 781, false, 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, false, 98, ~U[2025-11-03 14:00:18Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "https://www.youtube.com/watch?v=7OSUgn0f6VU", "7OSUgn0f6VU", 35, 781, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, ~U[2025-11-03 14:00:18Z]] 19:09:30.611 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 19:09:30.613 [debug] QUERY OK source="media_items" db=2.3ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 13:00:01Z], 35] 19:09:30.614 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Rarely is there only two sides to an argument. Usually there's at least a third choice that you haven't even considered!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "It's Rarely Black Or White...It's Usually Gray!", "c91b4055-6ad9-4971-a89b-3960f536afc8", "https://www.youtube.com/watch?v=-Y6h-VK4hSo", false, "-Y6h-VK4hSo", 35, [], 455, false, 20, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e103100_It's Rarely Black Or White...It's Usually Gray!.mp4", false, false, 98, ~U[2025-10-31 13:00:01Z], ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], "Rarely is there only two sides to an argument. Usually there's at least a third choice that you haven't even considered!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "It's Rarely Black Or White...It's Usually Gray!", "https://www.youtube.com/watch?v=-Y6h-VK4hSo", "-Y6h-VK4hSo", 35, 455, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e103100_It's Rarely Black Or White...It's Usually Gray!.mp4", false, ~U[2025-10-31 13:00:01Z]] 19:09:30.615 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z], 35] 19:09:30.617 [debug] QUERY OK source="media_items" db=2.4ms idle=4.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:09:30.620 [debug] QUERY OK source="media_items" db=2.4ms idle=6.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")))) [35] 19:09:30.621 [debug] QUERY OK source="media_items" db=0.5ms idle=6.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 19:09:30.622 [debug] QUERY OK source="tasks" db=0.6ms idle=4.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88138, 35, ~U[2026-01-01 01:09:30Z], ~U[2026-01-01 01:09:30Z]] 19:09:30.623 [info] {"args":{"id":35},"id":88124,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":44054399,"event":"job:stop","queue_time":581049,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:09:36.645 [info] {"args":{"id":51},"id":88135,"meta":{},"system_time":1767229776645241486,"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"]} 19:09:36.645 [debug] QUERY OK source="sources" db=0.2ms idle=298.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:09:36.646 [debug] QUERY OK source="settings" db=0.1ms idle=299.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:09:36.646 [debug] QUERY OK source="media_profiles" db=0.1ms idle=299.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] 19:09:36.646 [debug] QUERY OK source="settings" db=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 [] 19:09:36.646 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 19:09:36.966 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:09:36.967 [debug] QUERY OK source="media_items" db=0.3ms idle=321.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, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:09:36.967 [debug] QUERY OK source="media_items" db=0.3ms idle=321.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] 19:09:36.968 [debug] QUERY OK source="tasks" db=0.1ms idle=321.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88139, 51, ~U[2026-01-01 01:09:36Z], ~U[2026-01-01 01:09:36Z]] 19:09:36.968 [info] {"args":{"id":51},"id":88135,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":323413,"event":"job:stop","queue_time":716861,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 19:09:47.110 [info] {"source":"oban","duration":3587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:10:00.824 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:10:07.693 [info] {"args":{"id":46},"id":88126,"meta":{},"system_time":1767229807693068747,"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"]} 19:10:07.693 [debug] QUERY OK source="sources" db=0.1ms idle=1346.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:07.693 [debug] QUERY OK source="settings" db=0.3ms idle=1346.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:07.694 [debug] QUERY OK source="media_items" db=0.4ms idle=1008.8ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [46] 19:10:07.694 [debug] QUERY OK source="media_items" db=0.1ms idle=7.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 19:10:07.694 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:07.695 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:07.695 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:07.695 [debug] QUERY OK source="media_items" db=0.4ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [46] 19:10:07.697 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:10:07.697 [debug] Current batch of media processed. Will check again in 1000ms 19:10:07.697 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:07.697 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:07.698 [debug] QUERY OK source="settings" db=0.0ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:07.698 [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/41/ae/41ae6b4540cefee00e49bd67e84d14bdc47ecd8d5ad819ca5a635afeb379c57d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/92/32/923286ec3008498a3272661618ba85932914624e454dc6c97ab28c0ba3b627a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:10:08.698 [debug] Current batch of media processed. Will check again in 1000ms 19:10:09.699 [debug] Current batch of media processed. Will check again in 1000ms 19:10:10.700 [debug] Current batch of media processed. Will check again in 1000ms 19:10:11.701 [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" => 1, "timestamp" => 1766875119, "title" => "This side project was written in 3 hours | 2026 RIP Dev", "upload_date" => "20251227"} 19:10:11.702 [debug] QUERY OK source="sources" db=0.2ms idle=355.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:11.702 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [46] 19:10:11.703 [debug] QUERY OK source="media_items" db=0.3ms idle=356.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-27 22:38:39Z], 46] 19:10:11.716 [debug] QUERY OK source="media_items" db=12.6ms idle=356.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "d4e07949-c92f-4960-b1bf-ee093ad8b45b", "https://www.youtube.com/watch?v=FY9rrTmYMww", false, "FY9rrTmYMww", 46, [], 402, false, 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, false, 98, ~U[2025-12-27 22:38:39Z], ~U[2026-01-01 01:10:11Z], ~U[2026-01-01 01:10:11Z], "if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "https://www.youtube.com/watch?v=FY9rrTmYMww", "FY9rrTmYMww", 46, 402, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, ~U[2025-12-27 22:38:39Z]] 19:10:11.716 [debug] QUERY OK source="sources" db=0.3ms idle=23.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:11.717 [debug] QUERY OK source="media_profiles" db=0.1ms idle=14.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] 19:10:11.717 [debug] QUERY OK source="media_items" db=0.2ms 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 [1877810] 19:10:11.717 [debug] Current batch of media processed. Will check again in 1000ms 19:10:12.718 [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" => 2, "timestamp" => 1766739950, "title" => "This Linux Command deserves an Award", "upload_date" => "20251226"} 19:10:12.719 [debug] QUERY OK source="sources" db=0.5ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:12.720 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:12.720 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-26 09:05:50Z], 46] 19:10:12.725 [debug] QUERY OK source="media_items" db=4.1ms idle=1003.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "7cd58e15-30c7-4963-b2ac-a67e6ba007fa", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", false, "BLez_d_Z8Dw", 46, [], 693, false, 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, false, 98, ~U[2025-12-26 09:05:50Z], ~U[2026-01-01 01:10:12Z], ~U[2026-01-01 01:10:12Z], "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "BLez_d_Z8Dw", 46, 693, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, ~U[2025-12-26 09:05:50Z]] 19:10:12.725 [debug] QUERY OK source="sources" db=0.1ms idle=31.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:12.725 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:12.726 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1865120] 19:10:12.726 [debug] Current batch of media processed. Will check again in 1000ms 19:10:13.726 [debug] Current batch of media processed. Will check again in 1000ms 19:10:14.728 [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" => 3, "timestamp" => 1766205856, "title" => "Healing depressed Linux Users", "upload_date" => "20251220"} 19:10:14.728 [debug] QUERY OK source="sources" db=0.4ms idle=381.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:14.729 [debug] QUERY OK source="sources" db=0.0ms idle=382.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:14.729 [debug] QUERY OK source="media_items" db=0.3ms idle=382.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-20 04:44:16Z], 46] 19:10:14.730 [debug] QUERY OK source="media_items" db=0.4ms idle=383.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "Healing depressed Linux Users", "ab507b1e-f5f3-42ab-b5f5-d34e3b16d264", "https://www.youtube.com/watch?v=hfCsDPg8T0A", false, "hfCsDPg8T0A", 46, [], 827, false, 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, false, 98, ~U[2025-12-20 04:44:16Z], ~U[2026-01-01 01:10:14Z], ~U[2026-01-01 01:10:14Z], "write - suraj@bugswriter.com", "Healing depressed Linux Users", "https://www.youtube.com/watch?v=hfCsDPg8T0A", "hfCsDPg8T0A", 46, 827, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, ~U[2025-12-20 04:44:16Z]] 19:10:14.730 [debug] QUERY OK source="sources" db=0.1ms idle=34.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:14.730 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:14.731 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1815904] 19:10:14.731 [debug] Current batch of media processed. Will check again in 1000ms 19:10:15.731 [debug] Current batch of media processed. Will check again in 1000ms 19:10:16.732 [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" => 4, "timestamp" => 1766019829, "title" => "only computer science people will understand this...", "upload_date" => "20251218"} 19:10:16.733 [debug] QUERY OK source="sources" db=0.2ms idle=386.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:16.733 [debug] QUERY OK source="sources" db=0.1ms idle=386.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:16.734 [debug] QUERY OK source="media_items" db=0.3ms idle=387.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 01:03:49Z], 46] 19:10:16.734 [debug] QUERY OK source="media_items" db=0.4ms idle=387.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "only computer science people will understand this...", "e1303752-141d-47eb-a1a2-249b28ec1fbc", "https://www.youtube.com/watch?v=uXaV1r9IRng", false, "uXaV1r9IRng", 46, [], 896, false, 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, false, 98, ~U[2025-12-18 01:03:49Z], ~U[2026-01-01 01:10:16Z], ~U[2026-01-01 01:10:16Z], "write - suraj@bugswriter.com", "only computer science people will understand this...", "https://www.youtube.com/watch?v=uXaV1r9IRng", "uXaV1r9IRng", 46, 896, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, ~U[2025-12-18 01:03:49Z]] 19:10:16.735 [debug] QUERY OK source="sources" db=0.1ms idle=35.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:16.735 [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] 19:10:16.735 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1799377] 19:10:16.735 [debug] Current batch of media processed. Will check again in 1000ms 19:10:17.114 [info] {"source":"oban","duration":4066,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:10:17.736 [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" => 5, "timestamp" => 1765920232, "title" => "All Linux Hackers ... find this life hack", "upload_date" => "20251216"} 19:10:17.736 [debug] QUERY OK source="sources" db=0.1ms idle=1001.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:17.737 [debug] QUERY OK source="sources" db=0.2ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:17.737 [debug] QUERY OK source="media_items" db=0.4ms idle=1001.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 21:23:52Z], 46] 19:10:17.738 [debug] QUERY OK source="media_items" db=0.5ms idle=623.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "ab39e092-4ee8-4ae3-9fca-39c44ef0bb0d", "https://www.youtube.com/watch?v=8x722oYNR8U", false, "8x722oYNR8U", 46, [], 881, false, 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, false, 98, ~U[2025-12-16 21:23:52Z], ~U[2026-01-01 01:10:17Z], ~U[2026-01-01 01:10:17Z], "true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "https://www.youtube.com/watch?v=8x722oYNR8U", "8x722oYNR8U", 46, 881, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, ~U[2025-12-16 21:23:52Z]] 19:10:17.738 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [46] 19:10:17.739 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:17.739 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1789693] 19:10:17.739 [debug] Current batch of media processed. Will check again in 1000ms 19:10:18.739 [debug] Current batch of media processed. Will check again in 1000ms 19:10:19.740 [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" => 6, "timestamp" => 1765838367, "title" => "arch linux users reality check - I hate \"technology\"", "upload_date" => "20251215"} 19:10:19.740 [debug] QUERY OK source="sources" db=0.1ms idle=394.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:19.741 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [46] 19:10:19.741 [debug] QUERY OK source="media_items" db=0.3ms idle=394.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-15 22:39:27Z], 46] 19:10:19.743 [debug] QUERY OK source="media_items" db=1.6ms idle=395.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "85b58a34-b69c-40b2-98f4-ade5c988dc38", "https://www.youtube.com/watch?v=K7owg2iyxtI", false, "K7owg2iyxtI", 46, [], 975, false, 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, false, 98, ~U[2025-12-15 22:39:27Z], ~U[2026-01-01 01:10:19Z], ~U[2026-01-01 01:10:19Z], "write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "https://www.youtube.com/watch?v=K7owg2iyxtI", "K7owg2iyxtI", 46, 975, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, ~U[2025-12-15 22:39:27Z]] 19:10:19.743 [debug] QUERY OK source="sources" db=0.1ms idle=40.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:19.744 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 19:10:19.744 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1782344] 19:10:19.744 [debug] Current batch of media processed. Will check again in 1000ms 19:10:20.745 [debug] Current batch of media processed. Will check again in 1000ms 19:10:21.746 [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" => 7, "timestamp" => 1765277505, "title" => "piper tts is the chosen one (for my notifications)", "upload_date" => "20251209"} 19:10:21.747 [debug] QUERY OK source="sources" db=0.2ms idle=400.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:21.747 [debug] QUERY OK source="sources" db=0.0ms idle=401.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:21.748 [debug] QUERY OK source="media_items" db=0.3ms idle=401.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-09 10:51:45Z], 46] 19:10:21.749 [debug] QUERY OK source="media_items" db=0.4ms idle=401.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "694e358d-6a16-4064-9655-f2529f7d8d81", "https://www.youtube.com/watch?v=osixWhig3AI", false, "osixWhig3AI", 46, [], 619, false, 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, false, 98, ~U[2025-12-09 10:51:45Z], ~U[2026-01-01 01:10:21Z], ~U[2026-01-01 01:10:21Z], "write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "https://www.youtube.com/watch?v=osixWhig3AI", "osixWhig3AI", 46, 619, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, ~U[2025-12-09 10:51:45Z]] 19:10:21.749 [debug] QUERY OK source="sources" db=0.1ms idle=43.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:21.749 [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] 19:10:21.749 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1730517] 19:10:21.749 [debug] Current batch of media processed. Will check again in 1000ms 19:10:22.750 [debug] Current batch of media processed. Will check again in 1000ms 19:10:23.752 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "all my team members use arch linux ironically (5 people)", "duration" => 573, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", "id" => "i2p6Jpw4IvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i2p6Jpw4IvI", "playlist_index" => 8, "timestamp" => 1765161761, "title" => "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "upload_date" => "20251208"} 19:10:23.753 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=405.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:23.753 [debug] QUERY OK source="sources" db=0.1ms idle=406.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:23.753 [debug] QUERY OK source="media_items" db=0.4ms idle=406.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 02:42:41Z], 46] 19:10:23.754 [debug] QUERY OK source="media_items" db=0.4ms idle=407.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "788d59a7-d49b-456e-a019-9518525d183b", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", false, "i2p6Jpw4IvI", 46, [], 573, false, 8, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, false, 98, ~U[2025-12-08 02:42:41Z], ~U[2026-01-01 01:10:23Z], ~U[2026-01-01 01:10:23Z], "all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", "i2p6Jpw4IvI", 46, 573, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, ~U[2025-12-08 02:42:41Z]] 19:10:23.754 [debug] QUERY OK source="sources" db=0.1ms idle=45.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:23.755 [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] 19:10:23.755 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1720299] 19:10:23.755 [debug] Current batch of media processed. Will check again in 1000ms 19:10:24.757 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "sharing some thoughts.", "duration" => 971, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", "id" => "33UYBAH0EUc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=33UYBAH0EUc", "playlist_index" => 9, "timestamp" => 1764595973, "title" => "python systemd processes making money !", "upload_date" => "20251201"} 19:10:24.757 [debug] QUERY OK source="sources" db=0.4ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:24.758 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:24.758 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.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-01 13:32:53Z], 46] 19:10:24.759 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["sharing some thoughts.", "python systemd processes making money !", "c39d0977-eb3a-412c-89e3-548c4b0b55bf", "https://www.youtube.com/watch?v=33UYBAH0EUc", false, "33UYBAH0EUc", 46, [], 971, false, 9, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, false, 98, ~U[2025-12-01 13:32:53Z], ~U[2026-01-01 01:10:24Z], ~U[2026-01-01 01:10:24Z], "sharing some thoughts.", "python systemd processes making money !", "https://www.youtube.com/watch?v=33UYBAH0EUc", "33UYBAH0EUc", 46, 971, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, ~U[2025-12-01 13:32:53Z]] 19:10:24.759 [debug] QUERY OK source="sources" db=0.1ms idle=48.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:24.759 [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] 19:10:24.760 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1668719] 19:10:24.760 [debug] Current batch of media processed. Will check again in 1000ms 19:10:25.760 [debug] Current batch of media processed. Will check again in 1000ms 19:10:26.762 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "duration" => 813, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", "id" => "0GhH8oqFbVY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0GhH8oqFbVY", "playlist_index" => 10, "timestamp" => 1763976873, "title" => "DELETE Android from your LIFE !", "upload_date" => "20251124"} 19:10:26.763 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=415.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:26.763 [debug] QUERY OK source="sources" db=0.1ms idle=416.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:26.763 [debug] QUERY OK source="media_items" db=0.3ms idle=416.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-24 09:34:33Z], 46] 19:10:26.764 [debug] QUERY OK source="media_items" db=0.4ms idle=417.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "a9ea4302-5526-4eae-9879-7b9cd4d14f4a", "https://www.youtube.com/watch?v=0GhH8oqFbVY", false, "0GhH8oqFbVY", 46, [], 813, false, 10, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, false, 98, ~U[2025-11-24 09:34:33Z], ~U[2026-01-01 01:10:26Z], ~U[2026-01-01 01:10:26Z], "I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "https://www.youtube.com/watch?v=0GhH8oqFbVY", "0GhH8oqFbVY", 46, 813, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, ~U[2025-11-24 09:34:33Z]] 19:10:26.764 [debug] QUERY OK source="sources" db=0.1ms idle=51.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:26.765 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:26.765 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1612311] 19:10:26.765 [debug] Current batch of media processed. Will check again in 1000ms 19:10:27.766 [debug] Current batch of media processed. Will check again in 1000ms 19:10:28.767 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "its a very poorly made video, me trying to showcase - the solutions I made in my project", "duration" => 1023, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", "id" => "IwfwPrR3wQA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IwfwPrR3wQA", "playlist_index" => 11, "timestamp" => 1763372790, "title" => "bigger the tech problem, simpler the solution", "upload_date" => "20251117"} 19:10:28.768 [debug] QUERY OK source="sources" db=0.2ms idle=421.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:28.768 [debug] QUERY OK source="sources" db=0.1ms idle=422.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:28.769 [debug] QUERY OK source="media_items" db=0.3ms idle=422.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-17 09:46:30Z], 46] 19:10:28.770 [debug] QUERY OK source="media_items" db=0.5ms idle=422.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "ed646afe-86b5-4392-85d4-19d2ebf4880b", "https://www.youtube.com/watch?v=IwfwPrR3wQA", false, "IwfwPrR3wQA", 46, [], 1023, false, 11, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, false, 98, ~U[2025-11-17 09:46:30Z], ~U[2026-01-01 01:10:28Z], ~U[2026-01-01 01:10:28Z], "its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "https://www.youtube.com/watch?v=IwfwPrR3wQA", "IwfwPrR3wQA", 46, 1023, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, ~U[2025-11-17 09:46:30Z]] 19:10:28.770 [debug] QUERY OK source="sources" db=0.1ms 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] 19:10:28.770 [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] 19:10:28.770 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1558405] 19:10:28.770 [debug] Current batch of media processed. Will check again in 1000ms 19:10:29.771 [debug] Current batch of media processed. Will check again in 1000ms 19:10:30.772 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 661, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", "id" => "syNsuWNFZRo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=syNsuWNFZRo", "playlist_index" => 12, "timestamp" => 1763017746, "title" => "zed editor killed vscode - used it 2 months for my project", "upload_date" => "20251113"} 19:10:30.773 [debug] QUERY OK source="sources" db=0.1ms idle=426.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:30.773 [debug] QUERY OK source="sources" db=0.1ms idle=426.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:30.774 [debug] QUERY OK source="media_items" db=0.3ms idle=427.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-13 07:09:06Z], 46] 19:10:30.774 [debug] QUERY OK source="media_items" db=0.4ms idle=427.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "ec493b1e-c2a9-42b2-aade-806d314f94b3", "https://www.youtube.com/watch?v=syNsuWNFZRo", false, "syNsuWNFZRo", 46, [], 661, false, 12, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, false, 98, ~U[2025-11-13 07:09:06Z], ~U[2026-01-01 01:10:30Z], ~U[2026-01-01 01:10:30Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "https://www.youtube.com/watch?v=syNsuWNFZRo", "syNsuWNFZRo", 46, 661, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, ~U[2025-11-13 07:09:06Z]] 19:10:30.775 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:30.775 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:30.775 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1522420] 19:10:30.775 [debug] Current batch of media processed. Will check again in 1000ms 19:10:31.776 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "duration" => 721, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", "id" => "w770iDpO_H0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=w770iDpO_H0", "playlist_index" => 13, "timestamp" => 1762813067, "title" => "guys... what u think of my project ?", "upload_date" => "20251110"} 19:10:31.777 [debug] QUERY OK source="sources" db=0.3ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:31.777 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:31.778 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-10 22:17:47Z], 46] 19:10:31.778 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "6b2eda46-d380-421a-bee1-599116d65b37", "https://www.youtube.com/watch?v=w770iDpO_H0", false, "w770iDpO_H0", 46, [], 721, false, 13, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, false, 98, ~U[2025-11-10 22:17:47Z], ~U[2026-01-01 01:10:31Z], ~U[2026-01-01 01:10:31Z], "I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "https://www.youtube.com/watch?v=w770iDpO_H0", "w770iDpO_H0", 46, 721, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, ~U[2025-11-10 22:17:47Z]] 19:10:31.779 [debug] QUERY OK source="sources" db=0.1ms idle=58.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:31.779 [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] 19:10:31.779 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1504288] 19:10:31.779 [debug] Current batch of media processed. Will check again in 1000ms 19:10:32.780 [debug] Current batch of media processed. Will check again in 1000ms 19:10:33.781 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 1142, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", "id" => "rvT5sB5RYzs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rvT5sB5RYzs", "playlist_index" => 14, "timestamp" => 1762623460, "title" => "diabolic LINUX user teaching 90% AI hype", "upload_date" => "20251108"} 19:10:33.782 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=435.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:33.782 [debug] QUERY OK source="sources" db=0.2ms idle=435.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:33.783 [debug] QUERY OK source="media_items" db=0.3ms idle=436.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-08 17:37:40Z], 46] 19:10:33.783 [debug] QUERY OK source="media_items" db=0.5ms idle=436.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "424773d7-20f5-4484-baae-e8bb23a51014", "https://www.youtube.com/watch?v=rvT5sB5RYzs", false, "rvT5sB5RYzs", 46, [], 1142, false, 14, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, false, 98, ~U[2025-11-08 17:37:40Z], ~U[2026-01-01 01:10:33Z], ~U[2026-01-01 01:10:33Z], "read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "https://www.youtube.com/watch?v=rvT5sB5RYzs", "rvT5sB5RYzs", 46, 1142, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, ~U[2025-11-08 17:37:40Z]] 19:10:33.784 [debug] QUERY OK source="sources" db=0.1ms idle=59.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:33.784 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:33.784 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1487143] 19:10:33.784 [debug] Current batch of media processed. Will check again in 1000ms 19:10:34.785 [debug] Current batch of media processed. Will check again in 1000ms 19:10:35.786 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 753, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", "id" => "fhFWIY51tuY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fhFWIY51tuY", "playlist_index" => 15, "timestamp" => 1761936457, "title" => "tech jobs makes u weak", "upload_date" => "20251031"} 19:10:35.786 [debug] QUERY OK source="sources" db=0.1ms idle=440.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:35.787 [debug] QUERY OK source="sources" db=0.1ms idle=440.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:35.787 [debug] QUERY OK source="media_items" db=0.5ms idle=440.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 18:47:37Z], 46] 19:10:35.788 [debug] QUERY OK source="media_items" db=0.4ms idle=441.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "56792d42-45cf-4e79-b42c-ef7f4a65ab22", "https://www.youtube.com/watch?v=fhFWIY51tuY", false, "fhFWIY51tuY", 46, [], 753, false, 15, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, false, 98, ~U[2025-10-31 18:47:37Z], ~U[2026-01-01 01:10:35Z], ~U[2026-01-01 01:10:35Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "https://www.youtube.com/watch?v=fhFWIY51tuY", "fhFWIY51tuY", 46, 753, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, ~U[2025-10-31 18:47:37Z]] 19:10:35.788 [debug] QUERY OK source="sources" db=0.1ms idle=61.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:35.789 [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] 19:10:35.789 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1425430] 19:10:35.789 [debug] Current batch of media processed. Will check again in 1000ms 19:10:36.791 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 531, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", "id" => "I1P-L9JoyL4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I1P-L9JoyL4", "playlist_index" => 16, "timestamp" => 1761824893, "title" => "spotify noobs vs russian aimp pros", "upload_date" => "20251030"} 19:10:36.791 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 19:10:36.792 [debug] QUERY OK source="sources" db=0.0ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:36.793 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 11:48:13Z], 46] 19:10:36.793 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "573f10cc-c188-4413-a888-ad4250f505e7", "https://www.youtube.com/watch?v=I1P-L9JoyL4", false, "I1P-L9JoyL4", 46, [], 531, false, 16, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, false, 98, ~U[2025-10-30 11:48:13Z], ~U[2026-01-01 01:10:36Z], ~U[2026-01-01 01:10:36Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "https://www.youtube.com/watch?v=I1P-L9JoyL4", "I1P-L9JoyL4", 46, 531, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, ~U[2025-10-30 11:48:13Z]] 19:10:36.793 [debug] QUERY OK source="sources" db=0.1ms idle=65.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:36.794 [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] 19:10:36.794 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1415713] 19:10:36.794 [debug] Current batch of media processed. Will check again in 1000ms 19:10:37.795 [debug] Current batch of media processed. Will check again in 1000ms 19:10:38.796 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 561, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", "id" => "UtgGbSO0sAI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UtgGbSO0sAI", "playlist_index" => 17, "timestamp" => 1761683237, "title" => "most loved binary by engineers - pocketbase", "upload_date" => "20251028"} 19:10:38.796 [debug] QUERY OK source="sources" db=0.1ms idle=449.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:38.797 [debug] QUERY OK source="sources" db=0.0ms idle=450.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:38.797 [debug] QUERY OK source="media_items" db=0.3ms idle=450.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-28 20:27:17Z], 46] 19:10:38.798 [debug] QUERY OK source="media_items" db=0.4ms idle=450.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "93f0dadf-82d7-42b0-b0bd-241852297b25", "https://www.youtube.com/watch?v=UtgGbSO0sAI", false, "UtgGbSO0sAI", 46, [], 561, false, 17, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, false, 98, ~U[2025-10-28 20:27:17Z], ~U[2026-01-01 01:10:38Z], ~U[2026-01-01 01:10:38Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "https://www.youtube.com/watch?v=UtgGbSO0sAI", "UtgGbSO0sAI", 46, 561, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, ~U[2025-10-28 20:27:17Z]] 19:10:38.798 [debug] QUERY OK source="sources" db=0.1ms idle=67.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:38.798 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:10:38.799 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1402901] 19:10:38.799 [debug] Current batch of media processed. Will check again in 1000ms 19:10:39.799 [debug] Current batch of media processed. Will check again in 1000ms 19:10:40.129 [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/41/ae/41ae6b4540cefee00e49bd67e84d14bdc47ecd8d5ad819ca5a635afeb379c57d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/92/32/923286ec3008498a3272661618ba85932914624e454dc6c97ab28c0ba3b627a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:10:40.129 [debug] Gracefully stopping file follower 19:10:40.129 [debug] QUERY OK source="sources" db=0.1ms idle=1331.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:10:40.130 [debug] QUERY OK source="sources" db=0.0ms idle=1331.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:40.130 [debug] QUERY OK source="media_items" db=0.3ms idle=1331.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] 19:10:40.131 [debug] QUERY OK source="media_items" db=0.5ms idle=1331.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "48902716-6162-4805-b3b7-e1135eda15a6", "https://www.youtube.com/watch?v=FY9rrTmYMww", false, "FY9rrTmYMww", 46, [], 402, false, 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, false, 98, ~U[2025-12-27 22:38:39Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "https://www.youtube.com/watch?v=FY9rrTmYMww", "FY9rrTmYMww", 46, 402, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, ~U[2025-12-27 22:38:39Z]] 19:10:40.131 [debug] QUERY OK source="sources" db=0.1ms idle=399.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:40.131 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-26 09:05:50Z], 46] 19:10:40.132 [debug] QUERY OK source="media_items" db=0.4ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "1812a93b-2a2e-4b4c-aa07-37a93b18a08c", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", false, "BLez_d_Z8Dw", 46, [], 693, false, 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, false, 98, ~U[2025-12-26 09:05:50Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "BLez_d_Z8Dw", 46, 693, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, ~U[2025-12-26 09:05:50Z]] 19:10:40.132 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.133 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-20 04:44:16Z], 46] 19:10:40.133 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "Healing depressed Linux Users", "49beb08b-3897-472f-8310-f41669e7456d", "https://www.youtube.com/watch?v=hfCsDPg8T0A", false, "hfCsDPg8T0A", 46, [], 827, false, 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, false, 98, ~U[2025-12-20 04:44:16Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "write - suraj@bugswriter.com", "Healing depressed Linux Users", "https://www.youtube.com/watch?v=hfCsDPg8T0A", "hfCsDPg8T0A", 46, 827, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, ~U[2025-12-20 04:44:16Z]] 19:10:40.133 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.134 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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 01:03:49Z], 46] 19:10:40.134 [debug] QUERY OK source="media_items" db=0.4ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "only computer science people will understand this...", "b2dac3bc-54f9-4c1f-8ae1-88e9e3bbdc34", "https://www.youtube.com/watch?v=uXaV1r9IRng", false, "uXaV1r9IRng", 46, [], 896, false, 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, false, 98, ~U[2025-12-18 01:03:49Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "write - suraj@bugswriter.com", "only computer science people will understand this...", "https://www.youtube.com/watch?v=uXaV1r9IRng", "uXaV1r9IRng", 46, 896, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, ~U[2025-12-18 01:03:49Z]] 19:10:40.135 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.135 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 21:23:52Z], 46] 19:10:40.136 [debug] QUERY OK source="media_items" db=0.7ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "6ce1a312-a15f-48c5-ac78-17f6a7d79bc9", "https://www.youtube.com/watch?v=8x722oYNR8U", false, "8x722oYNR8U", 46, [], 881, false, 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, false, 98, ~U[2025-12-16 21:23:52Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "https://www.youtube.com/watch?v=8x722oYNR8U", "8x722oYNR8U", 46, 881, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, ~U[2025-12-16 21:23:52Z]] 19:10:40.136 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.137 [debug] QUERY OK source="media_items" db=0.2ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 22:39:27Z], 46] 19:10:40.137 [debug] QUERY OK source="media_items" db=0.3ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "b2d8a53b-6f62-42a5-8736-d7ab349009f6", "https://www.youtube.com/watch?v=K7owg2iyxtI", false, "K7owg2iyxtI", 46, [], 975, false, 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, false, 98, ~U[2025-12-15 22:39:27Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "https://www.youtube.com/watch?v=K7owg2iyxtI", "K7owg2iyxtI", 46, 975, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, ~U[2025-12-15 22:39:27Z]] 19:10:40.137 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.138 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-09 10:51:45Z], 46] 19:10:40.138 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "5c353bfd-b328-47fe-8433-93a3cb9ec25c", "https://www.youtube.com/watch?v=osixWhig3AI", false, "osixWhig3AI", 46, [], 619, false, 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, false, 98, ~U[2025-12-09 10:51:45Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "https://www.youtube.com/watch?v=osixWhig3AI", "osixWhig3AI", 46, 619, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, ~U[2025-12-09 10:51:45Z]] 19:10:40.138 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.139 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 02:42:41Z], 46] 19:10:40.139 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "f84ef835-08d8-4f1b-ab45-15f7b297ddb4", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", false, "i2p6Jpw4IvI", 46, [], 573, false, 8, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, false, 98, ~U[2025-12-08 02:42:41Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", "i2p6Jpw4IvI", 46, 573, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, ~U[2025-12-08 02:42:41Z]] 19:10:40.140 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.140 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-01 13:32:53Z], 46] 19:10:40.141 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["sharing some thoughts.", "python systemd processes making money !", "3368815d-9b5c-4558-ae67-aa02e7c57449", "https://www.youtube.com/watch?v=33UYBAH0EUc", false, "33UYBAH0EUc", 46, [], 971, false, 9, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, false, 98, ~U[2025-12-01 13:32:53Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "sharing some thoughts.", "python systemd processes making money !", "https://www.youtube.com/watch?v=33UYBAH0EUc", "33UYBAH0EUc", 46, 971, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, ~U[2025-12-01 13:32:53Z]] 19:10:40.141 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.141 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-24 09:34:33Z], 46] 19:10:40.142 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "f2f836b2-23a0-41c3-953b-690d16def21e", "https://www.youtube.com/watch?v=0GhH8oqFbVY", false, "0GhH8oqFbVY", 46, [], 813, false, 10, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, false, 98, ~U[2025-11-24 09:34:33Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "https://www.youtube.com/watch?v=0GhH8oqFbVY", "0GhH8oqFbVY", 46, 813, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, ~U[2025-11-24 09:34:33Z]] 19:10:40.142 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.143 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-17 09:46:30Z], 46] 19:10:40.143 [debug] QUERY OK source="media_items" db=0.4ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "787b6f38-7447-4a0e-8eb8-fb0f3ef93a63", "https://www.youtube.com/watch?v=IwfwPrR3wQA", false, "IwfwPrR3wQA", 46, [], 1023, false, 11, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, false, 98, ~U[2025-11-17 09:46:30Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "https://www.youtube.com/watch?v=IwfwPrR3wQA", "IwfwPrR3wQA", 46, 1023, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, ~U[2025-11-17 09:46:30Z]] 19:10:40.143 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.144 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 07:09:06Z], 46] 19:10:40.144 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "330a0417-ec3b-4203-9029-3bf234b3fbd7", "https://www.youtube.com/watch?v=syNsuWNFZRo", false, "syNsuWNFZRo", 46, [], 661, false, 12, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, false, 98, ~U[2025-11-13 07:09:06Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "https://www.youtube.com/watch?v=syNsuWNFZRo", "syNsuWNFZRo", 46, 661, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, ~U[2025-11-13 07:09:06Z]] 19:10:40.145 [debug] QUERY OK source="sources" db=0.2ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.145 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-10 22:17:47Z], 46] 19:10:40.146 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "4ee0dbbf-80f3-4de9-8707-0d0ac622663a", "https://www.youtube.com/watch?v=w770iDpO_H0", false, "w770iDpO_H0", 46, [], 721, false, 13, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, false, 98, ~U[2025-11-10 22:17:47Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "https://www.youtube.com/watch?v=w770iDpO_H0", "w770iDpO_H0", 46, 721, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, ~U[2025-11-10 22:17:47Z]] 19:10:40.146 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.146 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-08 17:37:40Z], 46] 19:10:40.147 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "001ac7b5-e69b-456c-8cdc-725c4c57077c", "https://www.youtube.com/watch?v=rvT5sB5RYzs", false, "rvT5sB5RYzs", 46, [], 1142, false, 14, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, false, 98, ~U[2025-11-08 17:37:40Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "https://www.youtube.com/watch?v=rvT5sB5RYzs", "rvT5sB5RYzs", 46, 1142, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, ~U[2025-11-08 17:37:40Z]] 19:10:40.147 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.148 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 18:47:37Z], 46] 19:10:40.148 [debug] QUERY OK source="media_items" db=0.4ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "89450bce-ec65-4f95-945f-fafaf2ad7c2f", "https://www.youtube.com/watch?v=fhFWIY51tuY", false, "fhFWIY51tuY", 46, [], 753, false, 15, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, false, 98, ~U[2025-10-31 18:47:37Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "https://www.youtube.com/watch?v=fhFWIY51tuY", "fhFWIY51tuY", 46, 753, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, ~U[2025-10-31 18:47:37Z]] 19:10:40.148 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.149 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 11:48:13Z], 46] 19:10:40.188 [debug] QUERY OK source="media_items" db=38.3ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "9c7a6ee4-6650-43ea-947a-adf558369ebb", "https://www.youtube.com/watch?v=I1P-L9JoyL4", false, "I1P-L9JoyL4", 46, [], 531, false, 16, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, false, 98, ~U[2025-10-30 11:48:13Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "https://www.youtube.com/watch?v=I1P-L9JoyL4", "I1P-L9JoyL4", 46, 531, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, ~U[2025-10-30 11:48:13Z]] 19:10:40.188 [debug] QUERY OK source="sources" db=0.2ms idle=40.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 19:10:40.188 [debug] QUERY OK source="media_items" db=0.3ms idle=39.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-28 20:27:17Z], 46] 19:10:40.189 [debug] QUERY OK source="media_items" db=0.4ms idle=40.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "63a1dffc-dca3-431a-ac1d-5cf7f68a4172", "https://www.youtube.com/watch?v=UtgGbSO0sAI", false, "UtgGbSO0sAI", 46, [], 561, false, 17, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, false, 98, ~U[2025-10-28 20:27:17Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "https://www.youtube.com/watch?v=UtgGbSO0sAI", "UtgGbSO0sAI", 46, 561, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, ~U[2025-10-28 20:27:17Z]] 19:10:40.189 [debug] QUERY OK source="sources" db=0.1ms idle=40.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:10:40.190 [debug] QUERY OK source="media_items" db=0.4ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 18:11:41Z], 46] 19:10:40.190 [debug] QUERY OK source="media_items" db=0.4ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["no more APIs -\nmcp servers are the future", "Future AI application - 1st draft", "201249fc-dd18-4873-8a81-67e9a8ab1d68", "https://www.youtube.com/watch?v=hfi0mi14VfE", false, "hfi0mi14VfE", 46, [], 514, false, 18, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e100500_Future AI application - 1st draft.mp4", false, false, 98, ~U[2025-10-05 18:11:41Z], ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], "no more APIs -\nmcp servers are the future", "Future AI application - 1st draft", "https://www.youtube.com/watch?v=hfi0mi14VfE", "hfi0mi14VfE", 46, 514, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e100500_Future AI application - 1st draft.mp4", false, ~U[2025-10-05 18:11:41Z]] 19:10:40.191 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z], 46] 19:10:40.191 [debug] QUERY OK source="media_items" db=0.4ms idle=1.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 19:10:40.192 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [46] 19:10:40.192 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 19:10:40.193 [debug] QUERY OK source="tasks" db=0.1ms idle=1.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88140, 46, ~U[2026-01-01 01:10:40Z], ~U[2026-01-01 01:10:40Z]] 19:10:40.193 [info] {"args":{"id":46},"id":88126,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":32500281,"event":"job:stop","queue_time":154491,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:10:47.119 [info] {"source":"oban","duration":3537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:11:00.826 [info] {"source":"oban","duration":735,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:11:17.123 [info] {"source":"oban","duration":3897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:11:47.146 [info] {"source":"oban","duration":22035,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:12:00.828 [info] {"source":"oban","duration":484,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:12:17.152 [info] {"source":"oban","duration":4663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:12:47.156 [info] {"source":"oban","duration":3342,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:13:00.829 [info] {"source":"oban","duration":404,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:13:17.160 [info] {"source":"oban","duration":2893,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:13:47.168 [info] {"source":"oban","duration":6519,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:14:00.831 [info] {"source":"oban","duration":281,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:14:17.171 [info] {"source":"oban","duration":2552,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:14:47.174 [info] {"source":"oban","duration":3200,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:15:00.831 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:15:02.176 [info] {"args":{"id":30},"id":88132,"meta":{},"system_time":1767230102176179814,"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"]} 19:15:02.176 [debug] QUERY OK source="sources" db=0.2ms idle=1829.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:02.176 [debug] QUERY OK source="settings" db=0.1ms idle=1345.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:15:02.180 [debug] QUERY OK source="media_items" db=3.8ms idle=1007.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] 19:15:02.181 [debug] QUERY OK source="media_items" db=0.5ms idle=10.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 19:15:02.181 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 19:15:02.182 [debug] QUERY OK source="settings" db=0.0ms idle=5.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:15:02.182 [debug] QUERY OK source="settings" db=0.0ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:15:02.185 [debug] QUERY OK source="media_items" db=2.4ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 19:15:02.187 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:15:02.187 [debug] Current batch of media processed. Will check again in 1000ms 19:15:02.187 [debug] QUERY OK source="settings" db=0.0ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:15:02.187 [debug] QUERY OK source="settings" db=0.0ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:15:02.187 [debug] QUERY OK source="settings" db=0.0ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:15:02.187 [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/53/29/5329e589a6d160a8aa98569f0c4b4ca811cd332ac42249957435861268a23a8c.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/11/f8/11f824cc499b62a3c43dbde87cdd0167cb38ec3e19b2df03c1b214efb4799597.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:15:03.187 [debug] Current batch of media processed. Will check again in 1000ms 19:15:04.188 [debug] Current batch of media processed. Will check again in 1000ms 19:15:05.189 [debug] Current batch of media processed. Will check again in 1000ms 19:15:06.190 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1263, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", "id" => "NKPMDddHbSQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NKPMDddHbSQ", "playlist_index" => 1, "timestamp" => 1767198617, "title" => "Phoenix: A New Linux X11 Server For 2026!?!", "upload_date" => "20251231"} 19:15:06.191 [debug] QUERY OK source="sources" db=0.2ms idle=844.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 19:15:06.191 [debug] QUERY OK source="sources" db=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" = ?) [30] 19:15:06.195 [debug] QUERY OK source="media_items" db=4.0ms idle=845.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-31 16:30:17Z], 30] 19:15:06.197 [debug] QUERY OK source="media_items" db=1.0ms idle=849.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "a726308a-aa68-42fc-ab1d-7c8a5a04a689", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 01:15:06Z], ~U[2026-01-01 01:15:06Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 19:15:06.197 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:06.197 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:06.198 [debug] QUERY OK source="media_items" db=0.6ms 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 [1907515] 19:15:06.198 [debug] Current batch of media processed. Will check again in 1000ms 19:15:07.199 [debug] Current batch of media processed. Will check again in 1000ms 19:15:08.200 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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" => 1035, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", "id" => "hOUwH5A2oQs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hOUwH5A2oQs", "playlist_index" => 2, "timestamp" => 1767112220, "title" => "The MongoBleed Vulnerability Is Absolutely Insane", "upload_date" => "20251230"} 19:15:08.201 [debug] QUERY OK source="sources" db=0.2ms idle=854.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:08.202 [debug] QUERY OK source="sources" db=0.1ms idle=855.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:08.206 [debug] QUERY OK source="media_items" db=3.8ms idle=855.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-30 16:30:20Z], 30] 19:15:08.207 [debug] QUERY OK source="media_items" db=1.1ms idle=859.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "cb58b42a-c453-4496-a0ef-ce561bd5c98c", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 01:15:08Z], ~U[2026-01-01 01:15:08Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 19:15:08.207 [debug] QUERY OK source="sources" db=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" = ?) [30] 19:15:08.208 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:08.208 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1899680] 19:15:08.208 [debug] Current batch of media processed. Will check again in 1000ms 19:15:09.209 [debug] Current batch of media processed. Will check again in 1000ms 19:15:10.210 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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" => 837, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", "id" => "ZYC6_CJMu34", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZYC6_CJMu34", "playlist_index" => 3, "timestamp" => 1767025818, "title" => "The One Thing I Hate About Linux Flatpaks", "upload_date" => "20251229"} 19:15:10.211 [debug] QUERY OK source="sources" db=0.2ms idle=864.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:10.211 [debug] QUERY OK source="sources" db=0.1ms idle=864.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:10.215 [debug] QUERY OK source="media_items" db=3.7ms idle=865.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-29 16:30:18Z], 30] 19:15:10.216 [debug] QUERY OK source="media_items" db=0.9ms idle=869.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "55048bfd-6acc-4c7e-8bb8-28e38e0f8124", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 01:15:10Z], ~U[2026-01-01 01:15:10Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 19:15:10.217 [debug] QUERY OK source="sources" db=0.1ms idle=35.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:10.217 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:10.217 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1891625] 19:15:10.218 [debug] Current batch of media processed. Will check again in 1000ms 19:15:11.218 [debug] Current batch of media processed. Will check again in 1000ms 19:15:12.220 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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" => 1354, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", "id" => "upKM5mViQrY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=upKM5mViQrY", "playlist_index" => 4, "timestamp" => 1766939431, "title" => "It's Time To Make A Major Change On Linux", "upload_date" => "20251228"} 19:15:12.220 [debug] QUERY OK source="sources" db=0.4ms idle=873.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:12.221 [debug] QUERY OK source="sources" db=0.1ms idle=874.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:12.225 [debug] QUERY OK source="media_items" db=3.8ms idle=874.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-28 16:30:31Z], 30] 19:15:12.226 [debug] QUERY OK source="media_items" db=1.0ms idle=878.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "9a039ff7-3d19-4fd4-ac17-18e1fb2005a0", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 01:15:12Z], ~U[2026-01-01 01:15:12Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 19:15:12.227 [debug] QUERY OK source="sources" db=0.1ms idle=42.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:12.227 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:12.227 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1883567] 19:15:12.227 [debug] Current batch of media processed. Will check again in 1000ms 19:15:13.228 [debug] Current batch of media processed. Will check again in 1000ms 19:15:14.230 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 773, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", "id" => "Aim-akCtpzM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Aim-akCtpzM", "playlist_index" => 5, "timestamp" => 1766853005, "title" => "Prepping For The Next Cloudflare Outage", "upload_date" => "20251227"} 19:15:14.231 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=884.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:14.231 [debug] QUERY OK source="sources" db=0.1ms idle=884.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:14.235 [debug] QUERY OK source="media_items" db=4.1ms idle=885.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-27 16:30:05Z], 30] 19:15:14.237 [debug] QUERY OK source="media_items" db=1.0ms idle=889.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "523c743d-ea45-4e52-a0e0-4a306f41c16b", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 01:15:14Z], ~U[2026-01-01 01:15:14Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 19:15:14.237 [debug] QUERY OK source="sources" db=0.1ms idle=50.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:14.237 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:14.238 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1875639] 19:15:14.238 [debug] Current batch of media processed. Will check again in 1000ms 19:15:15.238 [debug] Current batch of media processed. Will check again in 1000ms 19:15:16.240 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1067, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", "id" => "Db_Nl8vHs9A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "playlist_index" => 6, "timestamp" => 1766680204, "title" => "Mozilla Firefox's Future Is Going To Be Interesting", "upload_date" => "20251225"} 19:15:16.240 [debug] QUERY OK source="sources" db=0.1ms idle=894.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:16.241 [debug] QUERY OK source="sources" db=0.0ms idle=894.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:16.245 [debug] QUERY OK source="media_items" db=3.7ms idle=894.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-25 16:30:04Z], 30] 19:15:16.246 [debug] QUERY OK source="media_items" db=1.0ms idle=898.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "f0522f83-533b-42e2-a038-68870117c2a3", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 01:15:16Z], ~U[2026-01-01 01:15:16Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 19:15:16.246 [debug] QUERY OK source="sources" db=0.1ms idle=56.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:16.247 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:16.247 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1859592] 19:15:16.247 [debug] Current batch of media processed. Will check again in 1000ms 19:15:17.180 [info] {"source":"oban","duration":4497,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:15:17.248 [debug] Current batch of media processed. Will check again in 1000ms 19:15:18.250 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 933, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", "id" => "WTatQTpRWPs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WTatQTpRWPs", "playlist_index" => 7, "timestamp" => 1766593822, "title" => "The Truth Of The First Linux Kernel CVE In Rust", "upload_date" => "20251224"} 19:15:18.251 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=1059.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:18.251 [debug] QUERY OK source="sources" db=0.1ms idle=904.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:18.255 [debug] QUERY OK source="media_items" db=3.7ms idle=905.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-24 16:30:22Z], 30] 19:15:18.256 [debug] QUERY OK source="media_items" db=0.9ms idle=909.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "b72cfb8f-fe61-4be9-8ed1-00a8f0ab0195", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 01:15:18Z], ~U[2026-01-01 01:15:18Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 19:15:18.257 [debug] QUERY OK source="sources" db=0.4ms idle=64.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:18.257 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:18.257 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1851616] 19:15:18.258 [debug] Current batch of media processed. Will check again in 1000ms 19:15:19.258 [debug] Current batch of media processed. Will check again in 1000ms 19:15:20.259 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1019, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", "id" => "2-obijeo_bU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2-obijeo_bU", "playlist_index" => 8, "timestamp" => 1766507402, "title" => "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "upload_date" => "20251223"} 19:15:20.260 [debug] QUERY OK source="sources" db=0.1ms idle=913.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:20.260 [debug] QUERY OK source="sources" db=0.1ms idle=913.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:20.264 [debug] QUERY OK source="media_items" db=3.9ms idle=913.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-23 16:30:02Z], 30] 19:15:20.265 [debug] QUERY OK source="media_items" db=0.9ms idle=918.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "fa679ff8-7af6-48b3-95cf-748a63a031c9", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 01:15:20Z], ~U[2026-01-01 01:15:20Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 19:15:20.266 [debug] QUERY OK source="sources" db=0.1ms idle=70.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:20.266 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:20.266 [debug] QUERY OK source="media_items" db=0.2ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1843863] 19:15:20.266 [debug] Current batch of media processed. Will check again in 1000ms 19:15:21.267 [debug] Current batch of media processed. Will check again in 1000ms 19:15:22.268 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1008, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", "id" => "Y_9BrE3JzWY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "playlist_index" => 9, "timestamp" => 1766421016, "title" => "Let Me Rant About Computers For 16 Minutes", "upload_date" => "20251222"} 19:15:22.269 [debug] QUERY OK source="sources" db=0.2ms idle=922.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:22.269 [debug] QUERY OK source="sources" db=0.1ms idle=922.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:22.274 [debug] QUERY OK source="media_items" db=5.0ms idle=922.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-22 16:30:16Z], 30] 19:15:22.275 [debug] QUERY OK source="media_items" db=0.8ms idle=928.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "140d36f4-1660-4770-8415-0badf5684cd3", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 01:15:22Z], ~U[2026-01-01 01:15:22Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 19:15:22.276 [debug] QUERY OK source="sources" db=0.1ms idle=76.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:22.276 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:22.276 [debug] QUERY OK source="media_items" db=0.1ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1835824] 19:15:22.276 [debug] Current batch of media processed. Will check again in 1000ms 19:15:23.277 [debug] Current batch of media processed. Will check again in 1000ms 19:15:24.279 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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" => 1190, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", "id" => "8PTlYeLBKvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8PTlYeLBKvI", "playlist_index" => 10, "timestamp" => 1766334607, "title" => "FOSS Is Always One Maintainer From Collapsing", "upload_date" => "20251221"} 19:15:24.279 [debug] QUERY OK source="sources" db=0.1ms idle=932.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:24.279 [debug] QUERY OK source="sources" db=0.1ms idle=933.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:24.283 [debug] QUERY OK source="media_items" db=3.8ms idle=933.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-21 16:30:07Z], 30] 19:15:24.285 [debug] QUERY OK source="media_items" db=1.0ms idle=937.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "596793f5-2430-42ec-9e07-e13a8f83a2b9", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 01:15:24Z], ~U[2026-01-01 01:15:24Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 19:15:24.285 [debug] QUERY OK source="sources" db=0.1ms idle=82.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:24.285 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:24.286 [debug] QUERY OK source="media_items" db=0.2ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1827811] 19:15:24.286 [debug] Current batch of media processed. Will check again in 1000ms 19:15:25.286 [debug] Current batch of media processed. Will check again in 1000ms 19:15:26.287 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1179, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", "id" => "AY5kRPexQz4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AY5kRPexQz4", "playlist_index" => 11, "timestamp" => 1766248204, "title" => "Is This A Serious Attempt At A Linux Phone?", "upload_date" => "20251220"} 19:15:26.288 [debug] QUERY OK source="sources" db=0.2ms idle=941.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:26.288 [debug] QUERY OK source="sources" db=0.1ms idle=942.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:26.292 [debug] QUERY OK source="media_items" db=3.8ms idle=942.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 16:30:04Z], 30] 19:15:26.294 [debug] QUERY OK source="media_items" db=1.0ms idle=946.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "f5cc2643-edf8-4659-9510-73c20deff462", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 01:15:26Z], ~U[2026-01-01 01:15:26Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 19:15:26.294 [debug] QUERY OK source="sources" db=0.1ms idle=89.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:26.294 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:26.295 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1819814] 19:15:26.295 [debug] Current batch of media processed. Will check again in 1000ms 19:15:27.295 [debug] Current batch of media processed. Will check again in 1000ms 19:15:28.297 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", "id" => "3kZJrQNE3Lw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "playlist_index" => 12, "timestamp" => 1766075400, "title" => "KDE And GNOME Finally Have A Real Competitor", "upload_date" => "20251218"} 19:15:28.297 [debug] QUERY OK source="sources" db=0.1ms idle=950.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:28.297 [debug] QUERY OK source="sources" db=0.1ms idle=951.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:28.301 [debug] QUERY OK source="media_items" db=3.8ms idle=951.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 16:30:00Z], 30] 19:15:28.303 [debug] QUERY OK source="media_items" db=0.8ms idle=955.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "fd2b7b92-7533-475f-a015-0a4e7527df8e", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 01:15:28Z], ~U[2026-01-01 01:15:28Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 19:15:28.303 [debug] QUERY OK source="sources" db=0.1ms idle=94.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:28.303 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:28.303 [debug] QUERY OK source="media_items" db=0.1ms 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 [1804241] 19:15:28.303 [debug] Current batch of media processed. Will check again in 1000ms 19:15:29.304 [debug] Current batch of media processed. Will check again in 1000ms 19:15:30.306 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 966, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", "id" => "5AePMwjV3E4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5AePMwjV3E4", "playlist_index" => 13, "timestamp" => 1765989001, "title" => "The Craziest Linux User Found My Email Address", "upload_date" => "20251217"} 19:15:30.306 [debug] QUERY OK source="sources" db=0.2ms idle=959.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:30.306 [debug] QUERY OK source="sources" db=0.1ms idle=960.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:30.310 [debug] QUERY OK source="media_items" db=3.8ms idle=960.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-17 16:30:01Z], 30] 19:15:30.312 [debug] QUERY OK source="media_items" db=0.8ms idle=964.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "665529fc-181c-4f12-bf9b-b7e8f5962fb0", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 01:15:30Z], ~U[2026-01-01 01:15:30Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 19:15:30.312 [debug] QUERY OK source="sources" db=0.1ms idle=100.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:30.312 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:30.313 [debug] QUERY OK source="media_items" db=0.2ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1796109] 19:15:30.313 [debug] Current batch of media processed. Will check again in 1000ms 19:15:31.313 [debug] Current batch of media processed. Will check again in 1000ms 19:15:32.315 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1526, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", "id" => "kwXn_GSd8cA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kwXn_GSd8cA", "playlist_index" => 14, "timestamp" => 1765902617, "title" => "The Rust Linux Kernel Experiment Is Finally Over!!", "upload_date" => "20251216"} 19:15:32.315 [debug] QUERY OK source="sources" db=0.3ms idle=968.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:32.316 [debug] QUERY OK source="sources" db=0.1ms idle=969.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:32.320 [debug] QUERY OK source="media_items" db=3.7ms idle=969.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 16:30:17Z], 30] 19:15:32.323 [debug] QUERY OK source="media_items" db=2.9ms idle=973.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "088c19c8-e015-4077-ad8a-1112d271d885", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 01:15:32Z], ~U[2026-01-01 01:15:32Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 19:15:32.323 [debug] QUERY OK source="sources" db=0.1ms idle=107.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:32.324 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:32.324 [debug] QUERY OK source="media_items" db=0.1ms idle=8.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1788245] 19:15:32.324 [debug] Current batch of media processed. Will check again in 1000ms 19:15:33.325 [debug] Current batch of media processed. Will check again in 1000ms 19:15:34.326 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 808, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", "id" => "IB_0rR0imno", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IB_0rR0imno", "playlist_index" => 15, "timestamp" => 1765816207, "title" => "I Was Right Again About My Linux Home Directory", "upload_date" => "20251215"} 19:15:34.327 [debug] QUERY OK source="sources" db=0.1ms idle=980.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 19:15:34.327 [debug] QUERY OK source="sources" db=0.0ms idle=980.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:34.331 [debug] QUERY OK source="media_items" db=3.8ms idle=980.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 16:30:07Z], 30] 19:15:34.332 [debug] QUERY OK source="media_items" db=0.9ms idle=984.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "f92e1e1e-f088-4f44-9758-848b38ce2dc7", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 01:15:34Z], ~U[2026-01-01 01:15:34Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 19:15:34.332 [debug] QUERY OK source="sources" db=0.1ms idle=113.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:34.333 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:34.333 [debug] QUERY OK source="media_items" db=0.1ms 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 [1780315] 19:15:34.333 [debug] Current batch of media processed. Will check again in 1000ms 19:15:35.334 [debug] Current batch of media processed. Will check again in 1000ms 19:15:36.336 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 981, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", "id" => "LbK_xreMSio", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LbK_xreMSio", "playlist_index" => 16, "timestamp" => 1765729806, "title" => "This Is The Kind Project I Love Linux For!!", "upload_date" => "20251214"} 19:15:36.336 [debug] QUERY OK source="sources" db=0.1ms idle=990.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:36.337 [debug] QUERY OK source="sources" db=0.1ms idle=990.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:36.341 [debug] QUERY OK source="media_items" db=3.9ms idle=990.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-14 16:30:06Z], 30] 19:15:36.342 [debug] QUERY OK source="media_items" db=0.9ms idle=994.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "26d761f4-1994-410c-a379-616c858d0d8b", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 01:15:36Z], ~U[2026-01-01 01:15:36Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 19:15:36.342 [debug] QUERY OK source="sources" db=0.1ms idle=120.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:36.343 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:36.343 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1772387] 19:15:36.343 [debug] Current batch of media processed. Will check again in 1000ms 19:15:37.344 [debug] Current batch of media processed. Will check again in 1000ms 19:15:38.345 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 780, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", "id" => "OEPcLRH-Eiw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "playlist_index" => 17, "timestamp" => 1765643418, "title" => "Valve, We NEED A 64 Bit Steam Client On Linux!!", "upload_date" => "20251213"} 19:15:38.346 [debug] QUERY OK source="sources" db=0.1ms idle=999.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:38.346 [debug] QUERY OK source="sources" db=0.1ms idle=1.0e3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:38.350 [debug] QUERY OK source="media_items" db=4.0ms idle=1000.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-13 16:30:18Z], 30] 19:15:38.352 [debug] QUERY OK source="media_items" db=1.1ms idle=1004.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "c7099bed-c379-4834-b497-e51753e13a32", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 01:15:38Z], ~U[2026-01-01 01:15:38Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 19:15:38.352 [debug] QUERY OK source="sources" db=0.1ms idle=125.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:15:38.352 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:38.353 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1764416] 19:15:38.353 [debug] Current batch of media processed. Will check again in 1000ms 19:15:39.353 [debug] Current batch of media processed. Will check again in 1000ms 19:15:40.354 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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" => 2001, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", "id" => "PmjBZDGJzDQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "playlist_index" => 18, "timestamp" => 1765470611, "title" => "The Scientifically Correct Arch Linux User", "upload_date" => "20251211"} 19:15:40.355 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=124.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:40.355 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:40.359 [debug] QUERY OK source="media_items" db=3.8ms 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-11 16:30:11Z], 30] 19:15:40.361 [debug] QUERY OK source="media_items" db=1.5ms idle=13.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "5692b9c7-af2a-42f5-8b6f-c018d0de708b", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 01:15:40Z], ~U[2026-01-01 01:15:40Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 19:15:40.361 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:40.362 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:40.362 [debug] QUERY OK source="media_items" db=0.1ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1748497] 19:15:40.362 [debug] Current batch of media processed. Will check again in 1000ms 19:15:41.363 [debug] Current batch of media processed. Will check again in 1000ms 19:15:42.364 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 894, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", "id" => "N_X7clyPE5Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N_X7clyPE5Q", "playlist_index" => 19, "timestamp" => 1765384216, "title" => "You Control The Future Of Xorg On Linux!!", "upload_date" => "20251210"} 19:15:42.365 [debug] QUERY OK source="sources" db=0.1ms idle=130.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:42.365 [debug] QUERY OK source="sources" db=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" = ?) [30] 19:15:42.369 [debug] QUERY OK source="media_items" db=3.7ms 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-12-10 16:30:16Z], 30] 19:15:42.370 [debug] QUERY OK source="media_items" db=0.9ms idle=22.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "0a5aa982-c0d0-458b-a371-d3be01325012", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 01:15:42Z], ~U[2026-01-01 01:15:42Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 19:15:42.371 [debug] QUERY OK source="sources" db=0.1ms idle=23.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:42.371 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:15:42.371 [debug] QUERY OK source="media_items" db=0.1ms 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 [1740622] 19:15:42.371 [debug] Current batch of media processed. Will check again in 1000ms 19:15:43.372 [debug] Current batch of media processed. Will check again in 1000ms 19:15:43.551 [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/53/29/5329e589a6d160a8aa98569f0c4b4ca811cd332ac42249957435861268a23a8c.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/11/f8/11f824cc499b62a3c43dbde87cdd0167cb38ec3e19b2df03c1b214efb4799597.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:15:43.551 [debug] Gracefully stopping file follower 19:15:43.552 [debug] QUERY OK source="sources" db=0.1ms idle=1181.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:15:43.552 [debug] QUERY OK source="sources" db=0.0ms idle=1181.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.556 [debug] QUERY OK source="media_items" db=3.9ms idle=1181.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-31 16:30:17Z], 30] 19:15:43.557 [debug] QUERY OK source="media_items" db=0.9ms idle=1184.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "7c08a5fc-393c-4637-a545-988ceadcbfa3", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 19:15:43.557 [debug] QUERY OK source="sources" db=0.1ms idle=321.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.561 [debug] QUERY OK source="media_items" db=3.6ms idle=5.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-30 16:30:20Z], 30] 19:15:43.562 [debug] QUERY OK source="media_items" db=1.0ms idle=9.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "043eabdb-d577-4976-9e4b-ac2bbd39a9da", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 19:15:43.563 [debug] QUERY OK source="sources" db=0.5ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.567 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-29 16:30:18Z], 30] 19:15:43.568 [debug] QUERY OK source="media_items" db=0.8ms idle=9.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "3da4dd6c-503f-44c8-b417-0359e2eb5407", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 19:15:43.568 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 19:15:43.572 [debug] QUERY OK source="media_items" db=3.5ms 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[2025-12-28 16:30:31Z], 30] 19:15:43.573 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "83d642e3-da44-41d2-8d66-749b980adb5a", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 19:15:43.574 [debug] QUERY OK source="sources" db=0.4ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.578 [debug] QUERY OK source="media_items" db=3.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[2025-12-27 16:30:05Z], 30] 19:15:43.579 [debug] QUERY OK source="media_items" db=0.9ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "57a3f3f2-d90a-4ee8-b475-9a79206848e0", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 19:15:43.579 [debug] QUERY OK source="sources" db=0.5ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.583 [debug] QUERY OK source="media_items" db=3.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[2025-12-25 16:30:04Z], 30] 19:15:43.584 [debug] QUERY OK source="media_items" db=0.9ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "66d50cf6-ad82-47c7-9e4f-3e37e1b80c95", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 19:15:43.585 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.588 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-24 16:30:22Z], 30] 19:15:43.590 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "d09f871d-6b86-4cc3-bc12-6d855c91623d", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 19:15:43.590 [debug] QUERY OK source="sources" db=0.6ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.595 [debug] QUERY OK source="media_items" db=4.0ms 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[2025-12-23 16:30:02Z], 30] 19:15:43.596 [debug] QUERY OK source="media_items" db=1.1ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "60b164f1-dfd6-4e6b-bdbf-01c11a5a1093", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 19:15:43.597 [debug] QUERY OK source="sources" db=0.6ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.601 [debug] QUERY OK source="media_items" db=4.0ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-22 16:30:16Z], 30] 19:15:43.603 [debug] QUERY OK source="media_items" db=0.9ms idle=11.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "65c0561f-79b6-40a0-acff-1c5871fa379e", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 19:15:43.603 [debug] QUERY OK source="sources" db=0.5ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.607 [debug] QUERY OK source="media_items" db=3.7ms 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[2025-12-21 16:30:07Z], 30] 19:15:43.608 [debug] QUERY OK source="media_items" db=0.9ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "0abc3aad-70d7-4454-86a8-0752f04780e2", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 19:15:43.609 [debug] QUERY OK source="sources" db=0.5ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.613 [debug] QUERY OK source="media_items" db=3.7ms 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[2025-12-20 16:30:04Z], 30] 19:15:43.614 [debug] QUERY OK source="media_items" db=1.0ms idle=9.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "dfbc5a06-cfa0-41ae-9134-f517cf188ea9", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 19:15:43.615 [debug] QUERY OK source="sources" db=0.5ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.619 [debug] QUERY OK source="media_items" db=3.6ms 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[2025-12-18 16:30:00Z], 30] 19:15:43.620 [debug] QUERY OK source="media_items" db=0.8ms idle=9.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "72991899-8042-4dba-a0f6-6c523780e7bd", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 19:15:43.621 [debug] QUERY OK source="sources" db=0.5ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.625 [debug] QUERY OK source="media_items" db=3.7ms 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[2025-12-17 16:30:01Z], 30] 19:15:43.626 [debug] QUERY OK source="media_items" db=1.0ms idle=9.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "8dceb405-5bf5-4c7f-bd6e-cfaf9fc99c04", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 19:15:43.627 [debug] QUERY OK source="sources" db=0.6ms idle=7.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.631 [debug] QUERY OK source="media_items" db=4.0ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 16:30:17Z], 30] 19:15:43.633 [debug] QUERY OK source="media_items" db=1.1ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "58554a56-e306-47c5-a613-cfb3015860fb", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 19:15:43.633 [debug] QUERY OK source="sources" db=0.6ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.637 [debug] QUERY OK source="media_items" db=3.7ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 16:30:07Z], 30] 19:15:43.640 [debug] QUERY OK source="media_items" db=2.8ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "06f3e236-6557-452a-9e2e-556df26c71f5", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 19:15:43.641 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 19:15:43.645 [debug] QUERY OK source="media_items" db=3.6ms idle=8.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-14 16:30:06Z], 30] 19:15:43.646 [debug] QUERY OK source="media_items" db=0.9ms idle=11.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "b02be36d-26f2-4622-8ed4-7c5a6bbadb92", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 19:15:43.647 [debug] QUERY OK source="sources" db=0.5ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.650 [debug] QUERY OK source="media_items" db=3.6ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-13 16:30:18Z], 30] 19:15:43.652 [debug] QUERY OK source="media_items" db=1.0ms idle=9.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "207364a3-4872-444e-899a-fc0129e919ba", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 19:15:43.652 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 19:15:43.656 [debug] QUERY OK source="media_items" db=3.4ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 16:30:11Z], 30] 19:15:43.657 [debug] QUERY OK source="media_items" db=0.8ms idle=9.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "b80dfeab-616c-49f0-a9f1-c26eebaf8421", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 19:15:43.658 [debug] QUERY OK source="sources" db=0.5ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.662 [debug] QUERY OK source="media_items" db=3.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[2025-12-10 16:30:16Z], 30] 19:15:43.663 [debug] QUERY OK source="media_items" db=0.8ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "3cbe0473-530a-4a50-9bae-c7675bad7c91", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 19:15:43.663 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:15:43.667 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-09 16:30:12Z], 30] 19:15:43.668 [debug] QUERY OK source="media_items" db=0.8ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "e24f5182-84f3-4323-9658-29bdb9bc6cc5", "https://www.youtube.com/watch?v=HAhmUhLVuAc", false, "HAhmUhLVuAc", 30, [], 836, false, 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, false, 98, ~U[2025-12-09 16:30:12Z], ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], "Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "https://www.youtube.com/watch?v=HAhmUhLVuAc", "HAhmUhLVuAc", 30, 836, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, ~U[2025-12-09 16:30:12Z]] 19:15:43.669 [debug] QUERY OK source="sources" db=0.5ms idle=6.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z], 30] 19:15:43.672 [debug] QUERY OK source="media_items" db=3.6ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:15:43.676 [debug] QUERY OK source="media_items" db=3.6ms idle=9.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [30] 19:15:43.677 [debug] QUERY OK source="media_items" db=0.6ms idle=9.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 19:15:43.678 [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" [88141, 30, ~U[2026-01-01 01:15:43Z], ~U[2026-01-01 01:15:43Z]] 19:15:43.679 [info] {"args":{"id":30},"id":88132,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":41502826,"event":"job:stop","queue_time":128441,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:15:47.184 [info] {"source":"oban","duration":3530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:16:00.833 [info] {"source":"oban","duration":353,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:16:17.188 [info] {"source":"oban","duration":3775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:16:47.192 [info] {"source":"oban","duration":3325,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:17:00.834 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:17:17.196 [info] {"source":"oban","duration":2638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:17:47.200 [info] {"source":"oban","duration":3152,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:18:00.835 [info] {"source":"oban","duration":163,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:18:17.204 [info] {"source":"oban","duration":3697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:18:47.209 [info] {"source":"oban","duration":3558,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:19:00.837 [info] {"source":"oban","duration":490,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:19:17.213 [info] {"source":"oban","duration":3080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:19:37.616 [info] {"args":{"id":51},"id":88139,"meta":{},"system_time":1767230377616092030,"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"]} 19:19:37.616 [debug] QUERY OK source="sources" db=0.4ms idle=1269.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:19:37.617 [debug] QUERY OK source="settings" db=0.1ms idle=1270.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:19:37.617 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1010.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] 19:19:37.617 [debug] QUERY OK source="settings" db=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 [] 19:19:37.617 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 19:19:37.991 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:19:37.992 [debug] QUERY OK source="media_items" db=0.3ms idle=375.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:19:37.993 [debug] QUERY OK source="media_items" db=0.3ms idle=376.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")))) [51] 19:19:37.993 [debug] QUERY OK source="tasks" db=0.1ms idle=376.0ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88142, 51, ~U[2026-01-01 01:19:37Z], ~U[2026-01-01 01:19:37Z]] 19:19:37.994 [info] {"args":{"id":51},"id":88139,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":377928,"event":"job:stop","queue_time":646933,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 19:19:47.217 [info] {"source":"oban","duration":3529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:00.837 [info] {"source":"oban","duration":293,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:20:16.677 [info] {"args":{"id":32},"id":87771,"meta":{},"system_time":1767230416677369731,"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"]} 19:20:16.677 [debug] QUERY OK source="sources" db=0.1ms idle=1008.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:16.678 [debug] QUERY OK source="settings" db=0.1ms idle=331.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.679 [debug] QUERY OK source="media_items" db=1.2ms idle=331.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")))) [32] 19:20:16.679 [debug] QUERY OK source="media_items" db=0.1ms idle=8.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [32] 19:20:16.680 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:20:16.680 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.680 [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 [] 19:20:16.683 [debug] QUERY OK source="media_items" db=1.7ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [32] 19:20:16.684 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:20:16.684 [debug] Current batch of media processed. Will check again in 1000ms 19:20:16.684 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.684 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.685 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:20:16.685 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/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/63/10/631050e13d569005bed82ba45bc7a4c721a2d7ec9e52b40021d54e0193de4b04.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/f8/9d/f89da0b308325142d7ec3519f6078d435c6e440d25bc79e22d66044fe281823d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:20:17.221 [info] {"source":"oban","duration":3654,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:17.685 [debug] Current batch of media processed. Will check again in 1000ms 19:20:18.686 [debug] Current batch of media processed. Will check again in 1000ms 19:20:19.687 [debug] Current batch of media processed. Will check again in 1000ms 19:20:20.688 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show you how to install a window in new construction step by step, using a simple, DIY-friendly method that beginners can follow. From prepping the rough opening to flashing, shimming, and setting the window plumb and level, this is the same process I use when building houses from the ground up.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nFrogTape Flashing 6\" Flashing https://amzlink.to/az0lDadkwGvTE\nFrogTape Flashing 3.37” https://amzlink.to/az0AgzV03xjJG \nRoller https://amzlink.to/az0p0fyH6RP9H \n\nMore Helpful Related Videos👇\nhttps://youtu.be/qSdD8718reA\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 954, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122800_How to Install a Window | New Construction DIY FOR BEGINNERS!.mp4", "id" => "wNVZYJw79a4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wNVZYJw79a4", "playlist_index" => 1, "timestamp" => 1766964125, "title" => "How to Install a Window | New Construction DIY FOR BEGINNERS!", "upload_date" => "20251228"} 19:20:20.688 [debug] QUERY OK source="sources" db=0.1ms idle=342.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:20.689 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [32] 19:20:20.690 [debug] QUERY OK source="media_items" db=0.8ms idle=342.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-28 23:22:05Z], 32] 19:20:20.691 [debug] QUERY OK source="media_items" db=1.2ms idle=343.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show you how to install a window in new construction step by step, using a simple, DIY-friendly method that beginners can follow. From prepping the rough opening to flashing, shimming, and setting the window plumb and level, this is the same process I use when building houses from the ground up.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nFrogTape Flashing 6\" Flashing https://amzlink.to/az0lDadkwGvTE\nFrogTape Flashing 3.37” https://amzlink.to/az0AgzV03xjJG \nRoller https://amzlink.to/az0p0fyH6RP9H \n\nMore Helpful Related Videos👇\nhttps://youtu.be/qSdD8718reA\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Window | New Construction DIY FOR BEGINNERS!", "81dd4531-4873-480b-bbd2-05b446326794", "https://www.youtube.com/watch?v=wNVZYJw79a4", false, "wNVZYJw79a4", 32, [], 954, false, 1, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122800_How to Install a Window | New Construction DIY FOR BEGINNERS!.mp4", false, false, 98, ~U[2025-12-28 23:22:05Z], ~U[2026-01-01 01:20:20Z], ~U[2026-01-01 01:20:20Z], "In this video, I show you how to install a window in new construction step by step, using a simple, DIY-friendly method that beginners can follow. From prepping the rough opening to flashing, shimming, and setting the window plumb and level, this is the same process I use when building houses from the ground up.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nFrogTape Flashing 6\" Flashing https://amzlink.to/az0lDadkwGvTE\nFrogTape Flashing 3.37” https://amzlink.to/az0AgzV03xjJG \nRoller https://amzlink.to/az0p0fyH6RP9H \n\nMore Helpful Related Videos👇\nhttps://youtu.be/qSdD8718reA\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Window | New Construction DIY FOR BEGINNERS!", "https://www.youtube.com/watch?v=wNVZYJw79a4", "wNVZYJw79a4", 32, 954, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122800_How to Install a Window | New Construction DIY FOR BEGINNERS!.mp4", false, ~U[2025-12-28 23:22:05Z]] 19:20:20.692 [debug] QUERY OK source="sources" db=0.1ms idle=16.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:20.692 [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] 19:20:20.692 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1886441] 19:20:20.692 [debug] Current batch of media processed. Will check again in 1000ms 19:20:21.693 [debug] Current batch of media processed. Will check again in 1000ms 19:20:22.695 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I’ll show you how to install a frost proof yard hydrant step-by-step, perfect for beginners and DIY homeowners. The exact hydrant is a Woodford Yard Hydrant. We cover everything from digging the hole, setting the gravel base, connecting the water line, using thread sealant, installing the hydrant, and backfilling the trench the right!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nWoodford Yard Hydrant https://amzlink.to/az0ysxmZiTHch\n\nLowe's Material Used In This Video 👇\nWoodford Yard Hydrant https://shoplowes.me/3YtwINP\n\nMore Helpful Related Videos👇\nhttps://youtu.be/Io-kg7qnLD4?si=1pJhvOzG56bQ83Es\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 742, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122100_How to Install a Frost Proof Yard Hydrant | For Beginners!.mp4", "id" => "4l9LMP9sUWw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4l9LMP9sUWw", "playlist_index" => 2, "timestamp" => 1766359509, "title" => "How to Install a Frost Proof Yard Hydrant | For Beginners!", "upload_date" => "20251221"} 19:20:22.695 [debug] QUERY OK source="sources" db=0.1ms idle=348.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:22.695 [debug] QUERY OK source="sources" db=0.1ms idle=349.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:22.696 [debug] QUERY OK source="media_items" db=1.0ms idle=349.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-21 23:25:09Z], 32] 19:20:22.698 [debug] QUERY OK source="media_items" db=1.1ms idle=350.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I’ll show you how to install a frost proof yard hydrant step-by-step, perfect for beginners and DIY homeowners. The exact hydrant is a Woodford Yard Hydrant. We cover everything from digging the hole, setting the gravel base, connecting the water line, using thread sealant, installing the hydrant, and backfilling the trench the right!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nWoodford Yard Hydrant https://amzlink.to/az0ysxmZiTHch\n\nLowe's Material Used In This Video 👇\nWoodford Yard Hydrant https://shoplowes.me/3YtwINP\n\nMore Helpful Related Videos👇\nhttps://youtu.be/Io-kg7qnLD4?si=1pJhvOzG56bQ83Es\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Frost Proof Yard Hydrant | For Beginners!", "e0efeeee-721a-459f-81bf-7d78093103bb", "https://www.youtube.com/watch?v=4l9LMP9sUWw", false, "4l9LMP9sUWw", 32, [], 742, false, 2, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122100_How to Install a Frost Proof Yard Hydrant | For Beginners!.mp4", false, false, 98, ~U[2025-12-21 23:25:09Z], ~U[2026-01-01 01:20:22Z], ~U[2026-01-01 01:20:22Z], "In this video, I’ll show you how to install a frost proof yard hydrant step-by-step, perfect for beginners and DIY homeowners. The exact hydrant is a Woodford Yard Hydrant. We cover everything from digging the hole, setting the gravel base, connecting the water line, using thread sealant, installing the hydrant, and backfilling the trench the right!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nWoodford Yard Hydrant https://amzlink.to/az0ysxmZiTHch\n\nLowe's Material Used In This Video 👇\nWoodford Yard Hydrant https://shoplowes.me/3YtwINP\n\nMore Helpful Related Videos👇\nhttps://youtu.be/Io-kg7qnLD4?si=1pJhvOzG56bQ83Es\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Frost Proof Yard Hydrant | For Beginners!", "https://www.youtube.com/watch?v=4l9LMP9sUWw", "4l9LMP9sUWw", 32, 742, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122100_How to Install a Frost Proof Yard Hydrant | For Beginners!.mp4", false, ~U[2025-12-21 23:25:09Z]] 19:20:22.698 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:22.699 [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] 19:20:22.699 [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 [1830583] 19:20:22.699 [debug] Current batch of media processed. Will check again in 1000ms 19:20:23.700 [debug] Current batch of media processed. Will check again in 1000ms 19:20:24.701 [debug] Current batch of media processed. Will check again in 1000ms 19:20:25.702 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to install a GFCI outlet and explain one of the most common wiring mistakes people make which is mixing up the LINE and LOAD terminals. #electrical \n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Wire Automatic Stripper https://amzlink.to/az0akDNNlOgdz\nKlein Wire Cutter & Stripper https://amzlink.to/az0fZr0Gt0P1Z\nKlein Linemans Pliers https://amzlink.to/az0QO6ufp63F1\nKlein Diagol Cutters https://amzlink.to/az0W3e4Q0gVFW\nKlein Crimping Tool https://amzlink.to/az0tWbc7UQP1x\nKlein Tools 11-in-1 Screwdriver https://amzlink.to/az0NjyK5L0KZm\nKlein Tools RT210 Outlet Tester https://amzlink.to/az05YXzHFLzk2\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsK6GNcjxVACW1LPuhrSh5j\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nRough-In Wiring 01:06\nGFCI Wiring 08:02\nLoad-Side Outlet (GFCI Protected) 11:09\nGFCI Testing 13:35\nIncorrect GFCI Wiring (For Testing ONLY) 15:17\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 1118, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e121400_GFCI Outlet Installation | Avoid This Common MISTAKE!.mp4", "id" => "tlidqmkpDhM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tlidqmkpDhM", "playlist_index" => 3, "timestamp" => 1765754918, "title" => "GFCI Outlet Installation | Avoid This Common MISTAKE!", "upload_date" => "20251214"} 19:20:25.703 [debug] QUERY OK source="sources" db=0.1ms idle=1356.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:25.703 [debug] QUERY OK source="sources" db=0.1ms idle=1356.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:25.704 [debug] QUERY OK source="media_items" db=0.9ms idle=1357.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-14 23:28:38Z], 32] 19:20:25.706 [debug] QUERY OK source="media_items" db=1.8ms idle=1022.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to install a GFCI outlet and explain one of the most common wiring mistakes people make which is mixing up the LINE and LOAD terminals. #electrical \n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Wire Automatic Stripper https://amzlink.to/az0akDNNlOgdz\nKlein Wire Cutter & Stripper https://amzlink.to/az0fZr0Gt0P1Z\nKlein Linemans Pliers https://amzlink.to/az0QO6ufp63F1\nKlein Diagol Cutters https://amzlink.to/az0W3e4Q0gVFW\nKlein Crimping Tool https://amzlink.to/az0tWbc7UQP1x\nKlein Tools 11-in-1 Screwdriver https://amzlink.to/az0NjyK5L0KZm\nKlein Tools RT210 Outlet Tester https://amzlink.to/az05YXzHFLzk2\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsK6GNcjxVACW1LPuhrSh5j\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nRough-In Wiring 01:06\nGFCI Wiring 08:02\nLoad-Side Outlet (GFCI Protected) 11:09\nGFCI Testing 13:35\nIncorrect GFCI Wiring (For Testing ONLY) 15:17\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "GFCI Outlet Installation | Avoid This Common MISTAKE!", "b54edf72-532f-4dd3-b248-c379c697d856", "https://www.youtube.com/watch?v=tlidqmkpDhM", false, "tlidqmkpDhM", 32, [], 1118, false, 3, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e121400_GFCI Outlet Installation | Avoid This Common MISTAKE!.mp4", false, false, 98, ~U[2025-12-14 23:28:38Z], ~U[2026-01-01 01:20:25Z], ~U[2026-01-01 01:20:25Z], "In this video, I show how to install a GFCI outlet and explain one of the most common wiring mistakes people make which is mixing up the LINE and LOAD terminals. #electrical \n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Wire Automatic Stripper https://amzlink.to/az0akDNNlOgdz\nKlein Wire Cutter & Stripper https://amzlink.to/az0fZr0Gt0P1Z\nKlein Linemans Pliers https://amzlink.to/az0QO6ufp63F1\nKlein Diagol Cutters https://amzlink.to/az0W3e4Q0gVFW\nKlein Crimping Tool https://amzlink.to/az0tWbc7UQP1x\nKlein Tools 11-in-1 Screwdriver https://amzlink.to/az0NjyK5L0KZm\nKlein Tools RT210 Outlet Tester https://amzlink.to/az05YXzHFLzk2\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsK6GNcjxVACW1LPuhrSh5j\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nRough-In Wiring 01:06\nGFCI Wiring 08:02\nLoad-Side Outlet (GFCI Protected) 11:09\nGFCI Testing 13:35\nIncorrect GFCI Wiring (For Testing ONLY) 15:17\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "GFCI Outlet Installation | Avoid This Common MISTAKE!", "https://www.youtube.com/watch?v=tlidqmkpDhM", "tlidqmkpDhM", 32, 1118, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e121400_GFCI Outlet Installation | Avoid This Common MISTAKE!.mp4", false, ~U[2025-12-14 23:28:38Z]] 19:20:25.707 [debug] QUERY OK source="sources" db=0.1ms idle=23.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:25.707 [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] 19:20:25.707 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1775048] 19:20:25.707 [debug] Current batch of media processed. Will check again in 1000ms 19:20:26.708 [debug] Current batch of media processed. Will check again in 1000ms 19:20:27.710 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to install step flashing and kick-out flashing on a shingle roof the right way to prevent roof leaks. #diy #construction #roofing \n\nTry Jobber free for 14 days + get 35% off your first 3 months👇\nhttps://go.getjobber.com/TheExcellentLaborer\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H \nRoofing Nails https://amzlink.to/az0R049sCTah6\n\nLowe's Material Used In This Video 👇\nStep Flashing https://shoplowes.me/4pKgpYL \n\nMore Helpful Related Videos👇\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nStep Flashing Tutorial 00:52\nStep Flashing on the Roof 11:03\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 845, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e120700_Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!.mp4", "id" => "0zM7J_acoWs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0zM7J_acoWs", "playlist_index" => 4, "timestamp" => 1765151226, "title" => "Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!", "upload_date" => "20251207"} 19:20:27.710 [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" IN (?)) [32] 19:20:27.710 [debug] QUERY OK source="sources" db=0.1ms idle=364.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:27.712 [debug] QUERY OK source="media_items" db=1.0ms idle=364.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 23:47:06Z], 32] 19:20:27.726 [debug] QUERY OK source="media_items" db=13.9ms idle=365.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to install step flashing and kick-out flashing on a shingle roof the right way to prevent roof leaks. #diy #construction #roofing \n\nTry Jobber free for 14 days + get 35% off your first 3 months👇\nhttps://go.getjobber.com/TheExcellentLaborer\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H \nRoofing Nails https://amzlink.to/az0R049sCTah6\n\nLowe's Material Used In This Video 👇\nStep Flashing https://shoplowes.me/4pKgpYL \n\nMore Helpful Related Videos👇\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nStep Flashing Tutorial 00:52\nStep Flashing on the Roof 11:03\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!", "2055dd7b-5922-4f27-847a-ee5ae5709c54", "https://www.youtube.com/watch?v=0zM7J_acoWs", false, "0zM7J_acoWs", 32, [], 845, false, 4, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e120700_Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!.mp4", false, false, 98, ~U[2025-12-07 23:47:06Z], ~U[2026-01-01 01:20:27Z], ~U[2026-01-01 01:20:27Z], "In this video, I show how to install step flashing and kick-out flashing on a shingle roof the right way to prevent roof leaks. #diy #construction #roofing \n\nTry Jobber free for 14 days + get 35% off your first 3 months👇\nhttps://go.getjobber.com/TheExcellentLaborer\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H \nRoofing Nails https://amzlink.to/az0R049sCTah6\n\nLowe's Material Used In This Video 👇\nStep Flashing https://shoplowes.me/4pKgpYL \n\nMore Helpful Related Videos👇\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nStep Flashing Tutorial 00:52\nStep Flashing on the Roof 11:03\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!", "https://www.youtube.com/watch?v=0zM7J_acoWs", "0zM7J_acoWs", 32, 845, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e120700_Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!.mp4", false, ~U[2025-12-07 23:47:06Z]] 19:20:27.727 [debug] QUERY OK source="sources" db=0.2ms idle=41.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:27.727 [debug] QUERY OK source="media_profiles" db=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] 19:20:27.727 [debug] QUERY OK source="media_items" db=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 [1719506] 19:20:27.727 [debug] Current batch of media processed. Will check again in 1000ms 19:20:28.728 [debug] Current batch of media processed. Will check again in 1000ms 19:20:29.730 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how we set trusses by hand without using a crane. I show how we lift, align, and brace roof trusses using simple tools and teamwork!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 1400, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e113000_How We Set Roof Trusses by Hand on a Whole House (No Crane!).mp4", "id" => "BoxTl6Z4W0U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BoxTl6Z4W0U", "playlist_index" => 5, "timestamp" => 1764545629, "title" => "How We Set Roof Trusses by Hand on a Whole House (No Crane!)", "upload_date" => "20251130"} 19:20:29.730 [debug] QUERY OK source="sources" db=0.2ms idle=384.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:29.731 [debug] QUERY OK source="sources" db=0.0ms idle=384.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:29.732 [debug] QUERY OK source="media_items" db=0.9ms idle=384.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-30 23:33:49Z], 32] 19:20:29.737 [debug] QUERY OK source="media_items" db=4.3ms idle=385.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how we set trusses by hand without using a crane. I show how we lift, align, and brace roof trusses using simple tools and teamwork!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How We Set Roof Trusses by Hand on a Whole House (No Crane!)", "15b57e31-340c-4fbd-8f8f-5e0b1d83a50f", "https://www.youtube.com/watch?v=BoxTl6Z4W0U", false, "BoxTl6Z4W0U", 32, [], 1400, false, 5, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e113000_How We Set Roof Trusses by Hand on a Whole House (No Crane!).mp4", false, false, 98, ~U[2025-11-30 23:33:49Z], ~U[2026-01-01 01:20:29Z], ~U[2026-01-01 01:20:29Z], "In this video, I show how we set trusses by hand without using a crane. I show how we lift, align, and brace roof trusses using simple tools and teamwork!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How We Set Roof Trusses by Hand on a Whole House (No Crane!)", "https://www.youtube.com/watch?v=BoxTl6Z4W0U", "BoxTl6Z4W0U", 32, 1400, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e113000_How We Set Roof Trusses by Hand on a Whole House (No Crane!).mp4", false, ~U[2025-11-30 23:33:49Z]] 19:20:29.737 [debug] QUERY OK source="sources" db=0.1ms idle=48.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:29.737 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:20:29.738 [debug] QUERY OK source="media_items" db=0.2ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1664260] 19:20:29.738 [debug] Current batch of media processed. Will check again in 1000ms 19:20:30.738 [debug] Current batch of media processed. Will check again in 1000ms 19:20:31.739 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to build a deck covered attached to your house in this step-by-step beginners guide. I cover setting the posts, framing, beams, and roof construction so you can build a strong and long-lasting covered deck. Perfect DIY for someone looking to add outdoor living space!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n6x6 Galvanized Post Base https://amzlink.to/az0pR6lv5ySDX\nDeck Tension Tie Kit https://amzlink.to/az0bK3368akse\n18\" AllThread Galvanized Rod https://amzlink.to/az00VyJ42EM86\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nHurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nLowe's Material Used In This Video 👇\nDeck Material https://shoplowes.me/43JwGES\n\nMore Helpful Related Videos👇\nhttps://youtu.be/qgAEQxS0AYw\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/_mfSQz2l3ew\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nPost Base Installation 00:23\nLedger Board Installation 01:47\nPost Sitting 04:25\nJoist Installation 07:04\nStarting Deck Boards 10:01\nJoist Hanger & Lag Screw Installation 13:16\nFinishing Deck Boards 16:44\nBeam Installation 17:39\nTension Tie Installation 19:57\nRoof Beam Installation 22:53\nRoof Framing 30:54\nRailing Installation 38:20\nFinished Deck 43:50\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 2738, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e112300_How to Build a Covered Deck Attached to a House | Beginners Guide!.mp4", "id" => "hZGjBD9nbH8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hZGjBD9nbH8", "playlist_index" => 6, "timestamp" => 1763940648, "title" => "How to Build a Covered Deck Attached to a House | Beginners Guide!", "upload_date" => "20251123"} 19:20:31.740 [debug] QUERY OK source="sources" db=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 (?)) [32] 19:20:31.740 [debug] QUERY OK source="sources" db=0.0ms idle=394.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:31.741 [debug] QUERY OK source="media_items" db=0.9ms idle=394.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-23 23:30:48Z], 32] 19:20:31.743 [debug] QUERY OK source="media_items" db=1.7ms idle=395.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to build a deck covered attached to your house in this step-by-step beginners guide. I cover setting the posts, framing, beams, and roof construction so you can build a strong and long-lasting covered deck. Perfect DIY for someone looking to add outdoor living space!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n6x6 Galvanized Post Base https://amzlink.to/az0pR6lv5ySDX\nDeck Tension Tie Kit https://amzlink.to/az0bK3368akse\n18\" AllThread Galvanized Rod https://amzlink.to/az00VyJ42EM86\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nHurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nLowe's Material Used In This Video 👇\nDeck Material https://shoplowes.me/43JwGES\n\nMore Helpful Related Videos👇\nhttps://youtu.be/qgAEQxS0AYw\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/_mfSQz2l3ew\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nPost Base Installation 00:23\nLedger Board Installation 01:47\nPost Sitting 04:25\nJoist Installation 07:04\nStarting Deck Boards 10:01\nJoist Hanger & Lag Screw Installation 13:16\nFinishing Deck Boards 16:44\nBeam Installation 17:39\nTension Tie Installation 19:57\nRoof Beam Installation 22:53\nRoof Framing 30:54\nRailing Installation 38:20\nFinished Deck 43:50\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a Covered Deck Attached to a House | Beginners Guide!", "5a60861b-40c1-4d49-9f29-a9a3324593ff", "https://www.youtube.com/watch?v=hZGjBD9nbH8", false, "hZGjBD9nbH8", 32, [], 2738, false, 6, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e112300_How to Build a Covered Deck Attached to a House | Beginners Guide!.mp4", false, false, 98, ~U[2025-11-23 23:30:48Z], ~U[2026-01-01 01:20:31Z], ~U[2026-01-01 01:20:31Z], "In this video, I show how to build a deck covered attached to your house in this step-by-step beginners guide. I cover setting the posts, framing, beams, and roof construction so you can build a strong and long-lasting covered deck. Perfect DIY for someone looking to add outdoor living space!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n6x6 Galvanized Post Base https://amzlink.to/az0pR6lv5ySDX\nDeck Tension Tie Kit https://amzlink.to/az0bK3368akse\n18\" AllThread Galvanized Rod https://amzlink.to/az00VyJ42EM86\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nHurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nLowe's Material Used In This Video 👇\nDeck Material https://shoplowes.me/43JwGES\n\nMore Helpful Related Videos👇\nhttps://youtu.be/qgAEQxS0AYw\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/_mfSQz2l3ew\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nPost Base Installation 00:23\nLedger Board Installation 01:47\nPost Sitting 04:25\nJoist Installation 07:04\nStarting Deck Boards 10:01\nJoist Hanger & Lag Screw Installation 13:16\nFinishing Deck Boards 16:44\nBeam Installation 17:39\nTension Tie Installation 19:57\nRoof Beam Installation 22:53\nRoof Framing 30:54\nRailing Installation 38:20\nFinished Deck 43:50\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a Covered Deck Attached to a House | Beginners Guide!", "https://www.youtube.com/watch?v=hZGjBD9nbH8", "hZGjBD9nbH8", 32, 2738, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e112300_How to Build a Covered Deck Attached to a House | Beginners Guide!.mp4", false, ~U[2025-11-23 23:30:48Z]] 19:20:31.744 [debug] QUERY OK source="sources" db=0.1ms idle=52.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:31.744 [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] 19:20:31.744 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1609353] 19:20:31.745 [debug] Current batch of media processed. Will check again in 1000ms 19:20:32.745 [debug] Current batch of media processed. Will check again in 1000ms 19:20:33.746 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I how to shingle a roof valley using the California-cut method! In this step-by-step tutorial, I’ll show you how to install architectural shingles in a clean, watertight valley that looks professional and lasts for decades. You’ll also see how to install drip edge, ice and water shield, roof underlayment, and caps! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nTools And Supplies Used In This Video👇\nBOSTITCH Coil Roofing Nailer https://amzlink.to/az0XtDRJNUU51\nIce & Water Shield https://shoplowes.me/49O8i8F\nSynthetic roof underlayment https://shoplowes.me/3XuqsEZ\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H\nGuardian Fall Protection Bucket of Safe-Tie https://amzlink.to/az0Mj3nnD46dh\n\nMore Helpful Related Videos👇\nhttps://youtu.be/0zM7J_acoWs\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nIntro 00:00\nDrip Edge Installation 00:44\nIce & Water Shield Underlayment Installation 03:22\nValley Shingle Installation 05:04\nShingle Caps Installation 21:07\nFinishing Touch 26:37\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 1701, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e111600_How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style).mp4", "id" => "AC4E0HHxG28", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AC4E0HHxG28", "playlist_index" => 7, "timestamp" => 1763334640, "title" => "How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style)", "upload_date" => "20251116"} 19:20:33.747 [debug] QUERY OK source="sources" db=0.2ms idle=400.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:33.747 [debug] QUERY OK source="sources" db=0.0ms idle=401.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:33.748 [debug] QUERY OK source="media_items" db=0.9ms idle=401.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-16 23:10:40Z], 32] 19:20:33.751 [debug] QUERY OK source="media_items" db=1.8ms idle=402.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I how to shingle a roof valley using the California-cut method! In this step-by-step tutorial, I’ll show you how to install architectural shingles in a clean, watertight valley that looks professional and lasts for decades. You’ll also see how to install drip edge, ice and water shield, roof underlayment, and caps! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nTools And Supplies Used In This Video👇\nBOSTITCH Coil Roofing Nailer https://amzlink.to/az0XtDRJNUU51\nIce & Water Shield https://shoplowes.me/49O8i8F\nSynthetic roof underlayment https://shoplowes.me/3XuqsEZ\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H\nGuardian Fall Protection Bucket of Safe-Tie https://amzlink.to/az0Mj3nnD46dh\n\nMore Helpful Related Videos👇\nhttps://youtu.be/0zM7J_acoWs\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nIntro 00:00\nDrip Edge Installation 00:44\nIce & Water Shield Underlayment Installation 03:22\nValley Shingle Installation 05:04\nShingle Caps Installation 21:07\nFinishing Touch 26:37\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style)", "2178da47-3761-4086-9bc9-b183e191451c", "https://www.youtube.com/watch?v=AC4E0HHxG28", false, "AC4E0HHxG28", 32, [], 1701, false, 7, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e111600_How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style).mp4", false, false, 98, ~U[2025-11-16 23:10:40Z], ~U[2026-01-01 01:20:33Z], ~U[2026-01-01 01:20:33Z], "In this video, I how to shingle a roof valley using the California-cut method! In this step-by-step tutorial, I’ll show you how to install architectural shingles in a clean, watertight valley that looks professional and lasts for decades. You’ll also see how to install drip edge, ice and water shield, roof underlayment, and caps! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nTools And Supplies Used In This Video👇\nBOSTITCH Coil Roofing Nailer https://amzlink.to/az0XtDRJNUU51\nIce & Water Shield https://shoplowes.me/49O8i8F\nSynthetic roof underlayment https://shoplowes.me/3XuqsEZ\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H\nGuardian Fall Protection Bucket of Safe-Tie https://amzlink.to/az0Mj3nnD46dh\n\nMore Helpful Related Videos👇\nhttps://youtu.be/0zM7J_acoWs\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nIntro 00:00\nDrip Edge Installation 00:44\nIce & Water Shield Underlayment Installation 03:22\nValley Shingle Installation 05:04\nShingle Caps Installation 21:07\nFinishing Touch 26:37\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style)", "https://www.youtube.com/watch?v=AC4E0HHxG28", "AC4E0HHxG28", 32, 1701, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e111600_How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style).mp4", false, ~U[2025-11-16 23:10:40Z]] 19:20:33.751 [debug] QUERY OK source="sources" db=0.2ms idle=56.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:33.751 [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] 19:20:33.752 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1555522] 19:20:33.752 [debug] Current batch of media processed. Will check again in 1000ms 19:20:34.752 [debug] Current batch of media processed. Will check again in 1000ms 19:20:35.753 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to frame a valley roof for connecting two gable roofs. You’ll learn how to cut and install the valley rafter step by step, along with setting the ridge board, installing the sleeper (valley) board, and finding the correct bevel for your rafters. This simple method is perfect for tying two gable roofs together on any new build, garage, or addition.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/_mfSQz2l3ew\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 1103, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110900_How to Frame a Valley Roof | Connecting Two Gable Roofs!.mp4", "id" => "qgAEQxS0AYw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qgAEQxS0AYw", "playlist_index" => 8, "timestamp" => 1762730583, "title" => "How to Frame a Valley Roof | Connecting Two Gable Roofs!", "upload_date" => "20251109"} 19:20:35.754 [debug] QUERY OK source="sources" db=0.1ms idle=407.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:35.754 [debug] QUERY OK source="sources" db=0.1ms idle=407.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:35.755 [debug] QUERY OK source="media_items" db=0.9ms idle=407.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-09 23:23:03Z], 32] 19:20:35.757 [debug] QUERY OK source="media_items" db=1.2ms idle=408.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to frame a valley roof for connecting two gable roofs. You’ll learn how to cut and install the valley rafter step by step, along with setting the ridge board, installing the sleeper (valley) board, and finding the correct bevel for your rafters. This simple method is perfect for tying two gable roofs together on any new build, garage, or addition.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/_mfSQz2l3ew\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Frame a Valley Roof | Connecting Two Gable Roofs!", "adf5da41-72f0-4589-a33a-a2fc31c91f63", "https://www.youtube.com/watch?v=qgAEQxS0AYw", false, "qgAEQxS0AYw", 32, [], 1103, false, 8, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110900_How to Frame a Valley Roof | Connecting Two Gable Roofs!.mp4", false, false, 98, ~U[2025-11-09 23:23:03Z], ~U[2026-01-01 01:20:35Z], ~U[2026-01-01 01:20:35Z], "In this video, I show how to frame a valley roof for connecting two gable roofs. You’ll learn how to cut and install the valley rafter step by step, along with setting the ridge board, installing the sleeper (valley) board, and finding the correct bevel for your rafters. This simple method is perfect for tying two gable roofs together on any new build, garage, or addition.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/_mfSQz2l3ew\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Frame a Valley Roof | Connecting Two Gable Roofs!", "https://www.youtube.com/watch?v=qgAEQxS0AYw", "qgAEQxS0AYw", 32, 1103, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110900_How to Frame a Valley Roof | Connecting Two Gable Roofs!.mp4", false, ~U[2025-11-09 23:23:03Z]] 19:20:35.757 [debug] QUERY OK source="sources" db=0.1ms idle=59.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:35.757 [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] 19:20:35.757 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1497083] 19:20:35.757 [debug] Current batch of media processed. Will check again in 1000ms 19:20:36.758 [debug] Current batch of media processed. Will check again in 1000ms 19:20:37.760 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how we framed a roof with trusses and framed in the valley step-by-step and tie the whole roof structure together. We cover setting gable trusses, spacing and bracing common trusses, and getting the roof ready for sheathing. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\nSimpson StrongTie Hurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nGable Truss Preparation 04:42\nGable Truss Installation 12:31\nCommon Truss Installation 16:19\nGirder Truss Installation 22:50\nScissor Truss Installation 27:59\nGarage Truss Installation 30:07\nSub Fascia Board Installation 32:48\nRoof Sheathing Installation 38:08\nRoof Valley Framing 42:17\nRoof Sheathing Timelapse 01:00:01\nHurricane Ties 01:02:29\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 3915, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110200_How to Build a House | Part 5 – Roof Framing & Truss Installation!.mp4", "id" => "_mfSQz2l3ew", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_mfSQz2l3ew", "playlist_index" => 9, "timestamp" => 1762125728, "title" => "How to Build a House | Part 5 – Roof Framing & Truss Installation!", "upload_date" => "20251102"} 19:20:37.760 [debug] QUERY OK source="sources" db=0.1ms idle=413.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:37.760 [debug] QUERY OK source="sources" db=0.1ms idle=414.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:37.761 [debug] QUERY OK source="media_items" db=0.9ms idle=414.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-02 23:22:08Z], 32] 19:20:37.764 [debug] QUERY OK source="media_items" db=1.6ms idle=415.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how we framed a roof with trusses and framed in the valley step-by-step and tie the whole roof structure together. We cover setting gable trusses, spacing and bracing common trusses, and getting the roof ready for sheathing. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\nSimpson StrongTie Hurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nGable Truss Preparation 04:42\nGable Truss Installation 12:31\nCommon Truss Installation 16:19\nGirder Truss Installation 22:50\nScissor Truss Installation 27:59\nGarage Truss Installation 30:07\nSub Fascia Board Installation 32:48\nRoof Sheathing Installation 38:08\nRoof Valley Framing 42:17\nRoof Sheathing Timelapse 01:00:01\nHurricane Ties 01:02:29\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 5 – Roof Framing & Truss Installation!", "2104e2e3-e71e-41c3-a6da-2c1bd55e2817", "https://www.youtube.com/watch?v=_mfSQz2l3ew", false, "_mfSQz2l3ew", 32, [], 3915, false, 9, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110200_How to Build a House | Part 5 – Roof Framing & Truss Installation!.mp4", false, false, 98, ~U[2025-11-02 23:22:08Z], ~U[2026-01-01 01:20:37Z], ~U[2026-01-01 01:20:37Z], "In this video, I show how we framed a roof with trusses and framed in the valley step-by-step and tie the whole roof structure together. We cover setting gable trusses, spacing and bracing common trusses, and getting the roof ready for sheathing. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\nSimpson StrongTie Hurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nGable Truss Preparation 04:42\nGable Truss Installation 12:31\nCommon Truss Installation 16:19\nGirder Truss Installation 22:50\nScissor Truss Installation 27:59\nGarage Truss Installation 30:07\nSub Fascia Board Installation 32:48\nRoof Sheathing Installation 38:08\nRoof Valley Framing 42:17\nRoof Sheathing Timelapse 01:00:01\nHurricane Ties 01:02:29\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 5 – Roof Framing & Truss Installation!", "https://www.youtube.com/watch?v=_mfSQz2l3ew", "_mfSQz2l3ew", 32, 3915, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110200_How to Build a House | Part 5 – Roof Framing & Truss Installation!.mp4", false, ~U[2025-11-02 23:22:08Z]] 19:20:37.764 [debug] QUERY OK source="sources" db=0.1ms idle=63.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:37.764 [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] 19:20:37.764 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1442663] 19:20:37.764 [debug] Current batch of media processed. Will check again in 1000ms 19:20:38.765 [debug] Current batch of media processed. Will check again in 1000ms 19:20:39.767 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to build a house by framing the interior walls from start to finish! This is a great beginner’s guide that covers layout, marking plates, building T-walls, framing door openings, and keeping rooms square. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nhttps://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nChalking Layout Lines 02:20\nWall Plates & Layout 07:06\nBuilding Jacks & T-Wall Assemblies 19:32\nWall Assembly 26:30\nStanding Up and Securing Walls 34:15\nLadder Blocking 39:24\nProperly Securing Walls 41:38\nDouble Plating Walls 44:42\nWall Tour 47:54\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 2964, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e102000_How to Build a House | Part 4 – Interior Wall Framing for Beginners!.mp4", "id" => "L7bkUvp9rx0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L7bkUvp9rx0", "playlist_index" => 10, "timestamp" => 1760999801, "title" => "How to Build a House | Part 4 – Interior Wall Framing for Beginners!", "upload_date" => "20251020"} 19:20:39.767 [debug] QUERY OK source="sources" db=0.2ms idle=420.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:39.768 [debug] QUERY OK source="sources" db=0.0ms idle=421.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:39.769 [debug] QUERY OK source="media_items" db=1.0ms idle=421.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-20 22:36:41Z], 32] 19:20:39.770 [debug] QUERY OK source="media_items" db=1.1ms idle=422.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to build a house by framing the interior walls from start to finish! This is a great beginner’s guide that covers layout, marking plates, building T-walls, framing door openings, and keeping rooms square. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nhttps://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nChalking Layout Lines 02:20\nWall Plates & Layout 07:06\nBuilding Jacks & T-Wall Assemblies 19:32\nWall Assembly 26:30\nStanding Up and Securing Walls 34:15\nLadder Blocking 39:24\nProperly Securing Walls 41:38\nDouble Plating Walls 44:42\nWall Tour 47:54\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 4 – Interior Wall Framing for Beginners!", "af1f72ac-54af-420a-8341-9c06ee5c84be", "https://www.youtube.com/watch?v=L7bkUvp9rx0", false, "L7bkUvp9rx0", 32, [], 2964, false, 10, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e102000_How to Build a House | Part 4 – Interior Wall Framing for Beginners!.mp4", false, false, 98, ~U[2025-10-20 22:36:41Z], ~U[2026-01-01 01:20:39Z], ~U[2026-01-01 01:20:39Z], "In this video, I show how to build a house by framing the interior walls from start to finish! This is a great beginner’s guide that covers layout, marking plates, building T-walls, framing door openings, and keeping rooms square. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nhttps://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nChalking Layout Lines 02:20\nWall Plates & Layout 07:06\nBuilding Jacks & T-Wall Assemblies 19:32\nWall Assembly 26:30\nStanding Up and Securing Walls 34:15\nLadder Blocking 39:24\nProperly Securing Walls 41:38\nDouble Plating Walls 44:42\nWall Tour 47:54\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 4 – Interior Wall Framing for Beginners!", "https://www.youtube.com/watch?v=L7bkUvp9rx0", "L7bkUvp9rx0", 32, 2964, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e102000_How to Build a House | Part 4 – Interior Wall Framing for Beginners!.mp4", false, ~U[2025-10-20 22:36:41Z]] 19:20:39.771 [debug] QUERY OK source="sources" db=0.1ms idle=66.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:39.771 [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] 19:20:39.771 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1342222] 19:20:39.771 [debug] Current batch of media processed. Will check again in 1000ms 19:20:40.772 [debug] Current batch of media processed. Will check again in 1000ms 19:20:41.774 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to build a house by showing how to frame exterior walls from start to finish! This is a great beginners guide to layout, plates, studs, headers, sheathing, and bracing to keep everything straight and plumb. I also show how to frame the attached garage! This video shows every step of the process so you can frame walls. I also show how to frame the attached garage! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ufvcMq8aJTw?si=hoQlsNfKNEQ7tFdG\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nWall Layout & Plates 01:37\nHeader Construction 07:25\nWindow & Door Jacks 13:11\nLong Wall Layout 17:43\nWall Intersections 21:58\nWall Construction 23:58\nWall Sheathing 34:05\nHouse Wrap 42:12\nFraming and Standing the Walls (Time-Lapse) 43:32\nStanding Walls Explained 52:46\nAttached Garage Framing 55:25\nHouse Wrap Taping 01:06:02\nDouble Plating Walls 01:08:57\nAdditional Information 01:13:39\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 4811, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e101300_How to Build a House | Part 3 – Exterior Wall Framing for Beginners!.mp4", "id" => "mxBFA6XGFPY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mxBFA6XGFPY", "playlist_index" => 11, "timestamp" => 1760315042, "title" => "How to Build a House | Part 3 – Exterior Wall Framing for Beginners!", "upload_date" => "20251013"} 19:20:41.774 [debug] QUERY OK source="sources" db=0.2ms idle=428.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:41.775 [debug] QUERY OK source="sources" db=0.1ms idle=428.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:41.776 [debug] QUERY OK source="media_items" db=0.9ms idle=428.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-13 00:24:02Z], 32] 19:20:41.781 [debug] QUERY OK source="media_items" db=5.0ms idle=429.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to build a house by showing how to frame exterior walls from start to finish! This is a great beginners guide to layout, plates, studs, headers, sheathing, and bracing to keep everything straight and plumb. I also show how to frame the attached garage! This video shows every step of the process so you can frame walls. I also show how to frame the attached garage! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ufvcMq8aJTw?si=hoQlsNfKNEQ7tFdG\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nWall Layout & Plates 01:37\nHeader Construction 07:25\nWindow & Door Jacks 13:11\nLong Wall Layout 17:43\nWall Intersections 21:58\nWall Construction 23:58\nWall Sheathing 34:05\nHouse Wrap 42:12\nFraming and Standing the Walls (Time-Lapse) 43:32\nStanding Walls Explained 52:46\nAttached Garage Framing 55:25\nHouse Wrap Taping 01:06:02\nDouble Plating Walls 01:08:57\nAdditional Information 01:13:39\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 3 – Exterior Wall Framing for Beginners!", "cb6645eb-45b6-4bd9-8d56-1d478e64d92f", "https://www.youtube.com/watch?v=mxBFA6XGFPY", false, "mxBFA6XGFPY", 32, [], 4811, false, 11, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e101300_How to Build a House | Part 3 – Exterior Wall Framing for Beginners!.mp4", false, false, 98, ~U[2025-10-13 00:24:02Z], ~U[2026-01-01 01:20:41Z], ~U[2026-01-01 01:20:41Z], "In this video, I show how to build a house by showing how to frame exterior walls from start to finish! This is a great beginners guide to layout, plates, studs, headers, sheathing, and bracing to keep everything straight and plumb. I also show how to frame the attached garage! This video shows every step of the process so you can frame walls. I also show how to frame the attached garage! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ufvcMq8aJTw?si=hoQlsNfKNEQ7tFdG\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nWall Layout & Plates 01:37\nHeader Construction 07:25\nWindow & Door Jacks 13:11\nLong Wall Layout 17:43\nWall Intersections 21:58\nWall Construction 23:58\nWall Sheathing 34:05\nHouse Wrap 42:12\nFraming and Standing the Walls (Time-Lapse) 43:32\nStanding Walls Explained 52:46\nAttached Garage Framing 55:25\nHouse Wrap Taping 01:06:02\nDouble Plating Walls 01:08:57\nAdditional Information 01:13:39\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 3 – Exterior Wall Framing for Beginners!", "https://www.youtube.com/watch?v=mxBFA6XGFPY", "mxBFA6XGFPY", 32, 4811, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e101300_How (truncated) 19:20:41.782 [debug] QUERY OK source="sources" db=0.1ms idle=73.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:41.782 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:20:41.782 [debug] QUERY OK source="media_items" db=0.1ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1281170] 19:20:41.782 [debug] Current batch of media processed. Will check again in 1000ms 19:20:42.784 [debug] Current batch of media processed. Will check again in 1000ms 19:20:43.784 [debug] Current batch of media processed. Will check again in 1000ms 19:20:44.786 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show how to install subfloor the right way and see the difference between AdvanTech and standard OSB subfloor! In this step-by-step guide, I’ll show you how to lay and fasten subfloor, explain why AdvanTech is worth the cost, and share real-world tips for a long-lasting, squeak-free floor. Perfect for DIYers, homeowners, or anyone framing their own house.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools Used In This Video 👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\nFloor Framing Material https://shoplowes.me/4mSMWKl\nAdvantech Subfloor https://shoplowes.me/4mGcvOu\nOSB Subfloor https://shoplowes.me/479bxWp\n28 oz subfloor Liquid nails https://shoplowes.me/4gL6YVD\n2 3/8” nails ring shank gal. https://shoplowes.me/4o05mdb\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvrd\n\nMore Helpful Related Videos👇\nhttps://youtu.be/iOh2kBY1RIU\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nAdvanTech Subfloor Installation 00:16\nStandard OSB Subfloor Installation 17:15\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 1730, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!.mp4", "id" => "ahSvRUnt6IQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ahSvRUnt6IQ", "playlist_index" => 12, "timestamp" => 1759702644, "title" => "How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!", "upload_date" => "20251005"} 19:20:44.786 [debug] QUERY OK source="sources" db=0.2ms idle=1439.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:44.787 [debug] QUERY OK source="sources" db=0.0ms idle=1440.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:44.788 [debug] QUERY OK source="media_items" db=0.9ms idle=1440.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 22:17:24Z], 32] 19:20:44.794 [debug] QUERY OK source="media_items" db=5.4ms idle=1076.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to install subfloor the right way and see the difference between AdvanTech and standard OSB subfloor! In this step-by-step guide, I’ll show you how to lay and fasten subfloor, explain why AdvanTech is worth the cost, and share real-world tips for a long-lasting, squeak-free floor. Perfect for DIYers, homeowners, or anyone framing their own house.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools Used In This Video 👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\nFloor Framing Material https://shoplowes.me/4mSMWKl\nAdvantech Subfloor https://shoplowes.me/4mGcvOu\nOSB Subfloor https://shoplowes.me/479bxWp\n28 oz subfloor Liquid nails https://shoplowes.me/4gL6YVD\n2 3/8” nails ring shank gal. https://shoplowes.me/4o05mdb\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvrd\n\nMore Helpful Related Videos👇\nhttps://youtu.be/iOh2kBY1RIU\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nAdvanTech Subfloor Installation 00:16\nStandard OSB Subfloor Installation 17:15\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!", "efb42c0e-bffd-41e8-8e1b-92f89428971a", "https://www.youtube.com/watch?v=ahSvRUnt6IQ", false, "ahSvRUnt6IQ", 32, [], 1730, false, 12, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!.mp4", false, false, 79, ~U[2025-10-05 22:17:24Z], ~U[2026-01-01 01:20:44Z], ~U[2026-01-01 01:20:44Z], "In this video, I show how to install subfloor the right way and see the difference between AdvanTech and standard OSB subfloor! In this step-by-step guide, I’ll show you how to lay and fasten subfloor, explain why AdvanTech is worth the cost, and share real-world tips for a long-lasting, squeak-free floor. Perfect for DIYers, homeowners, or anyone framing their own house.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools Used In This Video 👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\nFloor Framing Material https://shoplowes.me/4mSMWKl\nAdvantech Subfloor https://shoplowes.me/4mGcvOu\nOSB Subfloor https://shoplowes.me/479bxWp\n28 oz subfloor Liquid nails https://shoplowes.me/4gL6YVD\n2 3/8” nails ring shank gal. https://shoplowes.me/4o05mdb\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvrd\n\nMore Helpful Related Videos👇\nhttps://youtu.be/iOh2kBY1RIU\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nAdvanTech Subfloor Installation 00:16\nStandard OSB Subfloor Installation 17:15\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!", "https://www.youtube.com/watch?v=ahSvRUnt6IQ", "ahSvRUnt6IQ", 32, 1730, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!.mp4", false, ~U[2025-10-05 22:17:24Z]] 19:20:44.794 [debug] QUERY OK source="sources" db=0.2ms idle=81.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:44.794 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:20:44.795 [debug] QUERY OK source="media_items" db=0.1ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227393] 19:20:44.795 [debug] Current batch of media processed. Will check again in 1000ms 19:20:45.796 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 238, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | String Line and Marking Lines.NA", "id" => "IVSRkYxswz0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IVSRkYxswz0", "playlist_index" => 13, "timestamp" => 1759700334, "title" => "Staking Out a House | String Line and Marking Lines", "upload_date" => "20251005"} 19:20:45.797 [debug] QUERY OK source="sources" db=0.2ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:45.797 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:45.798 [debug] QUERY OK source="media_items" db=1.0ms idle=1002.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-05 21:38:54Z], 32] 19:20:45.800 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | String Line and Marking Lines", "39d96963-1231-4a85-bba3-4c16e0f35563", "https://www.youtube.com/watch?v=IVSRkYxswz0", false, "IVSRkYxswz0", 32, [], 238, false, 13, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | String Line and Marking Lines.NA", false, false, 79, ~U[2025-10-05 21:38:54Z], ~U[2026-01-01 01:20:45Z], ~U[2026-01-01 01:20:45Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | String Line and Marking Lines", "https://www.youtube.com/watch?v=IVSRkYxswz0", "IVSRkYxswz0", 32, 238, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | String Line and Marking Lines.NA", false, ~U[2025-10-05 21:38:54Z]] 19:20:45.800 [debug] QUERY OK source="sources" db=0.1ms idle=85.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:45.801 [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] 19:20:45.801 [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 [1227394] 19:20:45.801 [info] Kicking off download for media item #1227394 (IVSRkYxswz0) 19:20:45.803 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 312, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | Squaring Up.NA", "id" => "Mwo1gI7yzsU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Mwo1gI7yzsU", "playlist_index" => 14, "timestamp" => 1759700143, "title" => "Staking Out a House | Squaring Up", "upload_date" => "20251005"} 19:20:45.803 [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" IN (?)) [32] 19:20:45.803 [debug] QUERY OK source="sources" db=0.0ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:45.805 [debug] QUERY OK source="media_items" db=0.8ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:35:43Z], 32] 19:20:45.806 [debug] QUERY OK source="media_items" db=0.8ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | Squaring Up", "1888c6f3-bace-40d4-998c-2a4a87b17fa9", "https://www.youtube.com/watch?v=Mwo1gI7yzsU", false, "Mwo1gI7yzsU", 32, [], 312, false, 14, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | Squaring Up.NA", false, false, 79, ~U[2025-10-05 21:35:43Z], ~U[2026-01-01 01:20:45Z], ~U[2026-01-01 01:20:45Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | Squaring Up", "https://www.youtube.com/watch?v=Mwo1gI7yzsU", "Mwo1gI7yzsU", 32, 312, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | Squaring Up.NA", false, ~U[2025-10-05 21:35:43Z]] 19:20:45.806 [debug] QUERY OK source="sources" db=0.1ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:45.806 [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] 19:20:45.807 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227395] 19:20:45.807 [info] Kicking off download for media item #1227395 (Mwo1gI7yzsU) 19:20:45.808 [debug] Current batch of media processed. Will check again in 1000ms 19:20:46.809 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 118, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | First Two Corners.NA", "id" => "TW7Wxk2zBVo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TW7Wxk2zBVo", "playlist_index" => 15, "timestamp" => 1759699880, "title" => "Staking Out a House | First Two Corners", "upload_date" => "20251005"} 19:20:46.810 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:46.810 [debug] QUERY OK source="sources" db=0.0ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:46.811 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:31:20Z], 32] 19:20:46.818 [debug] QUERY OK source="media_items" db=6.8ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | First Two Corners", "4c760239-163b-4054-9cfd-acb9d6a61cee", "https://www.youtube.com/watch?v=TW7Wxk2zBVo", false, "TW7Wxk2zBVo", 32, [], 118, false, 15, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | First Two Corners.NA", false, false, 79, ~U[2025-10-05 21:31:20Z], ~U[2026-01-01 01:20:46Z], ~U[2026-01-01 01:20:46Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | First Two Corners", "https://www.youtube.com/watch?v=TW7Wxk2zBVo", "TW7Wxk2zBVo", 32, 118, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | First Two Corners.NA", false, ~U[2025-10-05 21:31:20Z]] 19:20:46.819 [debug] QUERY OK source="sources" db=0.1ms idle=102.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:46.819 [debug] QUERY OK source="media_profiles" db=0.1ms idle=9.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] 19:20:46.819 [debug] QUERY OK source="media_items" db=0.1ms 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 [1227396] 19:20:46.819 [info] Kicking off download for media item #1227396 (TW7Wxk2zBVo) 19:20:46.820 [debug] Current batch of media processed. Will check again in 1000ms 19:20:47.225 [info] {"source":"oban","duration":3658,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:47.821 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 36, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out House | Tools and Supplies.NA", "id" => "Bv2BiIu5Wis", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bv2BiIu5Wis", "playlist_index" => 16, "timestamp" => 1759699804, "title" => "Staking Out House | Tools and Supplies", "upload_date" => "20251005"} 19:20:47.822 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:47.822 [debug] QUERY OK source="sources" db=0.0ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:47.823 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:30:04Z], 32] 19:20:47.825 [debug] QUERY OK source="media_items" db=0.8ms idle=598.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out House | Tools and Supplies", "bb790feb-d7ef-4581-a2f8-5454b03a7f61", "https://www.youtube.com/watch?v=Bv2BiIu5Wis", false, "Bv2BiIu5Wis", 32, [], 36, false, 16, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out House | Tools and Supplies.NA", false, false, 79, ~U[2025-10-05 21:30:04Z], ~U[2026-01-01 01:20:47Z], ~U[2026-01-01 01:20:47Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out House | Tools and Supplies", "https://www.youtube.com/watch?v=Bv2BiIu5Wis", "Bv2BiIu5Wis", 32, 36, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out House | Tools and Supplies.NA", false, ~U[2025-10-05 21:30:04Z]] 19:20:47.825 [debug] QUERY OK source="sources" db=0.1ms idle=106.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:47.825 [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] 19:20:47.825 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227397] 19:20:47.825 [info] Kicking off download for media item #1227397 (Bv2BiIu5Wis) 19:20:47.826 [debug] Current batch of media processed. Will check again in 1000ms 19:20:48.828 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 13, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House Intro.NA", "id" => "jPi3T0LA4tI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jPi3T0LA4tI", "playlist_index" => 17, "timestamp" => 1759699772, "title" => "Staking Out a House Intro", "upload_date" => "20251005"} 19:20:48.828 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:48.828 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:48.829 [debug] QUERY OK source="media_items" db=0.9ms idle=1003.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-05 21:29:32Z], 32] 19:20:48.831 [debug] QUERY OK source="media_items" db=1.7ms idle=1003.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House Intro", "cbe83b76-d245-4b69-8806-d26d97227717", "https://www.youtube.com/watch?v=jPi3T0LA4tI", false, "jPi3T0LA4tI", 32, [], 13, false, 17, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House Intro.NA", false, false, 79, ~U[2025-10-05 21:29:32Z], ~U[2026-01-01 01:20:48Z], ~U[2026-01-01 01:20:48Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House Intro", "https://www.youtube.com/watch?v=jPi3T0LA4tI", "jPi3T0LA4tI", 32, 13, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House Intro.NA", false, ~U[2025-10-05 21:29:32Z]] 19:20:48.832 [debug] QUERY OK source="sources" db=0.4ms idle=111.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:48.832 [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] 19:20:48.833 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227398] 19:20:48.833 [info] Kicking off download for media item #1227398 (jPi3T0LA4tI) 19:20:48.834 [debug] Current batch of media processed. Will check again in 1000ms 19:20:49.834 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 583, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 2.NA", "id" => "eNniaqgss2A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eNniaqgss2A", "playlist_index" => 18, "timestamp" => 1759699161, "title" => "Floor Plan | Electrical Part 2", "upload_date" => "20251005"} 19:20:49.835 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:49.835 [debug] QUERY OK source="sources" db=0.0ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:49.836 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:19:21Z], 32] 19:20:49.837 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 2", "05e99f6a-8ec4-4676-8d50-227f12dcb98b", "https://www.youtube.com/watch?v=eNniaqgss2A", false, "eNniaqgss2A", 32, [], 583, false, 18, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 2.NA", false, false, 79, ~U[2025-10-05 21:19:21Z], ~U[2026-01-01 01:20:49Z], ~U[2026-01-01 01:20:49Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 2", "https://www.youtube.com/watch?v=eNniaqgss2A", "eNniaqgss2A", 32, 583, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 2.NA", false, ~U[2025-10-05 21:19:21Z]] 19:20:49.837 [debug] QUERY OK source="sources" db=0.1ms idle=114.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:49.838 [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] 19:20:49.838 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227399] 19:20:49.838 [info] Kicking off download for media item #1227399 (eNniaqgss2A) 19:20:49.840 [debug] Current batch of media processed. Will check again in 1000ms 19:20:50.840 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 247, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 1.NA", "id" => "1TX4W0lRp48", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1TX4W0lRp48", "playlist_index" => 19, "timestamp" => 1759699015, "title" => "Floor Plan | Electrical Part 1", "upload_date" => "20251005"} 19:20:50.841 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:50.841 [debug] QUERY OK source="sources" db=0.0ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:50.842 [debug] QUERY OK source="media_items" db=0.8ms idle=1002.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:16:55Z], 32] 19:20:50.843 [debug] QUERY OK source="media_items" db=1.1ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 1", "10fadb39-5da5-4646-bd9d-fe7497ea8e64", "https://www.youtube.com/watch?v=1TX4W0lRp48", false, "1TX4W0lRp48", 32, [], 247, false, 19, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 1.NA", false, false, 79, ~U[2025-10-05 21:16:55Z], ~U[2026-01-01 01:20:50Z], ~U[2026-01-01 01:20:50Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 1", "https://www.youtube.com/watch?v=1TX4W0lRp48", "1TX4W0lRp48", 32, 247, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 1.NA", false, ~U[2025-10-05 21:16:55Z]] 19:20:50.844 [debug] QUERY OK source="sources" db=0.1ms idle=119.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:50.844 [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] 19:20:50.844 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227400] 19:20:50.844 [info] Kicking off download for media item #1227400 (1TX4W0lRp48) 19:20:50.845 [debug] Current batch of media processed. Will check again in 1000ms 19:20:51.846 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "duration" => 577, "filename" => "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Plumbing.NA", "id" => "asFBJT0pHXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=asFBJT0pHXs", "playlist_index" => 20, "timestamp" => 1759698738, "title" => "Floor Plan | Plumbing", "upload_date" => "20251005"} 19:20:51.847 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:51.847 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.848 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.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-05 21:12:18Z], 32] 19:20:51.849 [debug] QUERY OK source="media_items" db=0.7ms idle=1002.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Plumbing", "eb2ebbb3-c019-4578-b57a-90beae2c2f35", "https://www.youtube.com/watch?v=asFBJT0pHXs", false, "asFBJT0pHXs", 32, [], 577, false, 20, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Plumbing.NA", false, false, 79, ~U[2025-10-05 21:12:18Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Plumbing", "https://www.youtube.com/watch?v=asFBJT0pHXs", "asFBJT0pHXs", 32, 577, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Plumbing.NA", false, ~U[2025-10-05 21:12:18Z]] 19:20:51.849 [debug] QUERY OK source="sources" db=0.1ms idle=123.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.850 [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] 19:20:51.850 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1227401] 19:20:51.850 [info] Kicking off download for media item #1227401 (asFBJT0pHXs) 19:20:51.851 [debug] Current batch of media processed. Will check again in 1000ms 19:20:51.859 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/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/63/10/631050e13d569005bed82ba45bc7a4c721a2d7ec9e52b40021d54e0193de4b04.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/f8/9d/f89da0b308325142d7ec3519f6078d435c6e440d25bc79e22d66044fe281823d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:20:51.859 [debug] Gracefully stopping file follower 19:20:51.859 [debug] QUERY OK source="sources" db=0.1ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [32] 19:20:51.860 [debug] QUERY OK source="sources" db=0.1ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.861 [debug] QUERY OK source="media_items" db=0.9ms 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[2025-12-28 23:22:05Z], 32] 19:20:51.862 [debug] QUERY OK source="media_items" db=0.9ms idle=10.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show you how to install a window in new construction step by step, using a simple, DIY-friendly method that beginners can follow. From prepping the rough opening to flashing, shimming, and setting the window plumb and level, this is the same process I use when building houses from the ground up.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nFrogTape Flashing 6\" Flashing https://amzlink.to/az0lDadkwGvTE\nFrogTape Flashing 3.37” https://amzlink.to/az0AgzV03xjJG \nRoller https://amzlink.to/az0p0fyH6RP9H \n\nMore Helpful Related Videos👇\nhttps://youtu.be/qSdD8718reA\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Window | New Construction DIY FOR BEGINNERS!", "ebe84b98-b313-4d61-866e-9505b75a86f7", "https://www.youtube.com/watch?v=wNVZYJw79a4", false, "wNVZYJw79a4", 32, [], 954, false, 1, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122800_How to Install a Window | New Construction DIY FOR BEGINNERS!.mp4", false, false, 98, ~U[2025-12-28 23:22:05Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show you how to install a window in new construction step by step, using a simple, DIY-friendly method that beginners can follow. From prepping the rough opening to flashing, shimming, and setting the window plumb and level, this is the same process I use when building houses from the ground up.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nFrogTape Flashing 6\" Flashing https://amzlink.to/az0lDadkwGvTE\nFrogTape Flashing 3.37” https://amzlink.to/az0AgzV03xjJG \nRoller https://amzlink.to/az0p0fyH6RP9H \n\nMore Helpful Related Videos👇\nhttps://youtu.be/qSdD8718reA\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Window | New Construction DIY FOR BEGINNERS!", "https://www.youtube.com/watch?v=wNVZYJw79a4", "wNVZYJw79a4", 32, 954, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122800_How to Install a Window | New Construction DIY FOR BEGINNERS!.mp4", false, ~U[2025-12-28 23:22:05Z]] 19:20:51.862 [debug] QUERY OK source="sources" db=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" = ?) [32] 19:20:51.863 [debug] QUERY OK source="media_items" db=0.8ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-21 23:25:09Z], 32] 19:20:51.865 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I’ll show you how to install a frost proof yard hydrant step-by-step, perfect for beginners and DIY homeowners. The exact hydrant is a Woodford Yard Hydrant. We cover everything from digging the hole, setting the gravel base, connecting the water line, using thread sealant, installing the hydrant, and backfilling the trench the right!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nWoodford Yard Hydrant https://amzlink.to/az0ysxmZiTHch\n\nLowe's Material Used In This Video 👇\nWoodford Yard Hydrant https://shoplowes.me/3YtwINP\n\nMore Helpful Related Videos👇\nhttps://youtu.be/Io-kg7qnLD4?si=1pJhvOzG56bQ83Es\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Frost Proof Yard Hydrant | For Beginners!", "c1d8f72a-5844-4107-8431-7e4be7076f36", "https://www.youtube.com/watch?v=4l9LMP9sUWw", false, "4l9LMP9sUWw", 32, [], 742, false, 2, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122100_How to Install a Frost Proof Yard Hydrant | For Beginners!.mp4", false, false, 98, ~U[2025-12-21 23:25:09Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I’ll show you how to install a frost proof yard hydrant step-by-step, perfect for beginners and DIY homeowners. The exact hydrant is a Woodford Yard Hydrant. We cover everything from digging the hole, setting the gravel base, connecting the water line, using thread sealant, installing the hydrant, and backfilling the trench the right!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nWoodford Yard Hydrant https://amzlink.to/az0ysxmZiTHch\n\nLowe's Material Used In This Video 👇\nWoodford Yard Hydrant https://shoplowes.me/3YtwINP\n\nMore Helpful Related Videos👇\nhttps://youtu.be/Io-kg7qnLD4?si=1pJhvOzG56bQ83Es\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install a Frost Proof Yard Hydrant | For Beginners!", "https://www.youtube.com/watch?v=4l9LMP9sUWw", "4l9LMP9sUWw", 32, 742, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e122100_How to Install a Frost Proof Yard Hydrant | For Beginners!.mp4", false, ~U[2025-12-21 23:25:09Z]] 19:20:51.865 [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" = ?) [32] 19:20:51.866 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-14 23:28:38Z], 32] 19:20:51.867 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to install a GFCI outlet and explain one of the most common wiring mistakes people make which is mixing up the LINE and LOAD terminals. #electrical \n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Wire Automatic Stripper https://amzlink.to/az0akDNNlOgdz\nKlein Wire Cutter & Stripper https://amzlink.to/az0fZr0Gt0P1Z\nKlein Linemans Pliers https://amzlink.to/az0QO6ufp63F1\nKlein Diagol Cutters https://amzlink.to/az0W3e4Q0gVFW\nKlein Crimping Tool https://amzlink.to/az0tWbc7UQP1x\nKlein Tools 11-in-1 Screwdriver https://amzlink.to/az0NjyK5L0KZm\nKlein Tools RT210 Outlet Tester https://amzlink.to/az05YXzHFLzk2\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsK6GNcjxVACW1LPuhrSh5j\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nRough-In Wiring 01:06\nGFCI Wiring 08:02\nLoad-Side Outlet (GFCI Protected) 11:09\nGFCI Testing 13:35\nIncorrect GFCI Wiring (For Testing ONLY) 15:17\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "GFCI Outlet Installation | Avoid This Common MISTAKE!", "22d11220-51a2-4497-962c-9267a6e42a20", "https://www.youtube.com/watch?v=tlidqmkpDhM", false, "tlidqmkpDhM", 32, [], 1118, false, 3, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e121400_GFCI Outlet Installation | Avoid This Common MISTAKE!.mp4", false, false, 98, ~U[2025-12-14 23:28:38Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to install a GFCI outlet and explain one of the most common wiring mistakes people make which is mixing up the LINE and LOAD terminals. #electrical \n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Wire Automatic Stripper https://amzlink.to/az0akDNNlOgdz\nKlein Wire Cutter & Stripper https://amzlink.to/az0fZr0Gt0P1Z\nKlein Linemans Pliers https://amzlink.to/az0QO6ufp63F1\nKlein Diagol Cutters https://amzlink.to/az0W3e4Q0gVFW\nKlein Crimping Tool https://amzlink.to/az0tWbc7UQP1x\nKlein Tools 11-in-1 Screwdriver https://amzlink.to/az0NjyK5L0KZm\nKlein Tools RT210 Outlet Tester https://amzlink.to/az05YXzHFLzk2\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsK6GNcjxVACW1LPuhrSh5j\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nRough-In Wiring 01:06\nGFCI Wiring 08:02\nLoad-Side Outlet (GFCI Protected) 11:09\nGFCI Testing 13:35\nIncorrect GFCI Wiring (For Testing ONLY) 15:17\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "GFCI Outlet Installation | Avoid This Common MISTAKE!", "https://www.youtube.com/watch?v=tlidqmkpDhM", "tlidqmkpDhM", 32, 1118, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e121400_GFCI Outlet Installation | Avoid This Common MISTAKE!.mp4", false, ~U[2025-12-14 23:28:38Z]] 19:20:51.867 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.868 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 23:47:06Z], 32] 19:20:51.870 [debug] QUERY OK source="media_items" db=1.0ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to install step flashing and kick-out flashing on a shingle roof the right way to prevent roof leaks. #diy #construction #roofing \n\nTry Jobber free for 14 days + get 35% off your first 3 months👇\nhttps://go.getjobber.com/TheExcellentLaborer\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H \nRoofing Nails https://amzlink.to/az0R049sCTah6\n\nLowe's Material Used In This Video 👇\nStep Flashing https://shoplowes.me/4pKgpYL \n\nMore Helpful Related Videos👇\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nStep Flashing Tutorial 00:52\nStep Flashing on the Roof 11:03\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!", "ba8f8771-0a61-44ab-ac64-997f94b0ed01", "https://www.youtube.com/watch?v=0zM7J_acoWs", false, "0zM7J_acoWs", 32, [], 845, false, 4, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e120700_Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!.mp4", false, false, 98, ~U[2025-12-07 23:47:06Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to install step flashing and kick-out flashing on a shingle roof the right way to prevent roof leaks. #diy #construction #roofing \n\nTry Jobber free for 14 days + get 35% off your first 3 months👇\nhttps://go.getjobber.com/TheExcellentLaborer\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H \nRoofing Nails https://amzlink.to/az0R049sCTah6\n\nLowe's Material Used In This Video 👇\nStep Flashing https://shoplowes.me/4pKgpYL \n\nMore Helpful Related Videos👇\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nStep Flashing Tutorial 00:52\nStep Flashing on the Roof 11:03\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!", "https://www.youtube.com/watch?v=0zM7J_acoWs", "0zM7J_acoWs", 32, 845, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e120700_Step Flashing Installation (With Kick-Out Flashing) | Prevent Roof Leaks!.mp4", false, ~U[2025-12-07 23:47:06Z]] 19:20:51.870 [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" = ?) [32] 19:20:51.871 [debug] QUERY OK source="media_items" db=0.8ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-30 23:33:49Z], 32] 19:20:51.872 [debug] QUERY OK source="media_items" db=0.9ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how we set trusses by hand without using a crane. I show how we lift, align, and brace roof trusses using simple tools and teamwork!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How We Set Roof Trusses by Hand on a Whole House (No Crane!)", "4efda699-8d7f-46b3-a0ca-3849a7529b18", "https://www.youtube.com/watch?v=BoxTl6Z4W0U", false, "BoxTl6Z4W0U", 32, [], 1400, false, 5, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e113000_How We Set Roof Trusses by Hand on a Whole House (No Crane!).mp4", false, false, 98, ~U[2025-11-30 23:33:49Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how we set trusses by hand without using a crane. I show how we lift, align, and brace roof trusses using simple tools and teamwork!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How We Set Roof Trusses by Hand on a Whole House (No Crane!)", "https://www.youtube.com/watch?v=BoxTl6Z4W0U", "BoxTl6Z4W0U", 32, 1400, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e113000_How We Set Roof Trusses by Hand on a Whole House (No Crane!).mp4", false, ~U[2025-11-30 23:33:49Z]] 19:20:51.872 [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" = ?) [32] 19:20:51.873 [debug] QUERY OK source="media_items" db=0.7ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-23 23:30:48Z], 32] 19:20:51.875 [debug] QUERY OK source="media_items" db=1.0ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to build a deck covered attached to your house in this step-by-step beginners guide. I cover setting the posts, framing, beams, and roof construction so you can build a strong and long-lasting covered deck. Perfect DIY for someone looking to add outdoor living space!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n6x6 Galvanized Post Base https://amzlink.to/az0pR6lv5ySDX\nDeck Tension Tie Kit https://amzlink.to/az0bK3368akse\n18\" AllThread Galvanized Rod https://amzlink.to/az00VyJ42EM86\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nHurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nLowe's Material Used In This Video 👇\nDeck Material https://shoplowes.me/43JwGES\n\nMore Helpful Related Videos👇\nhttps://youtu.be/qgAEQxS0AYw\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/_mfSQz2l3ew\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nPost Base Installation 00:23\nLedger Board Installation 01:47\nPost Sitting 04:25\nJoist Installation 07:04\nStarting Deck Boards 10:01\nJoist Hanger & Lag Screw Installation 13:16\nFinishing Deck Boards 16:44\nBeam Installation 17:39\nTension Tie Installation 19:57\nRoof Beam Installation 22:53\nRoof Framing 30:54\nRailing Installation 38:20\nFinished Deck 43:50\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a Covered Deck Attached to a House | Beginners Guide!", "4706a21b-409a-46ad-8b48-a59d10ffd23f", "https://www.youtube.com/watch?v=hZGjBD9nbH8", false, "hZGjBD9nbH8", 32, [], 2738, false, 6, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e112300_How to Build a Covered Deck Attached to a House | Beginners Guide!.mp4", false, false, 98, ~U[2025-11-23 23:30:48Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to build a deck covered attached to your house in this step-by-step beginners guide. I cover setting the posts, framing, beams, and roof construction so you can build a strong and long-lasting covered deck. Perfect DIY for someone looking to add outdoor living space!\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n6x6 Galvanized Post Base https://amzlink.to/az0pR6lv5ySDX\nDeck Tension Tie Kit https://amzlink.to/az0bK3368akse\n18\" AllThread Galvanized Rod https://amzlink.to/az00VyJ42EM86\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nHurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nLowe's Material Used In This Video 👇\nDeck Material https://shoplowes.me/43JwGES\n\nMore Helpful Related Videos👇\nhttps://youtu.be/qgAEQxS0AYw\nhttps://youtu.be/AC4E0HHxG28\nhttps://youtu.be/_mfSQz2l3ew\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nPost Base Installation 00:23\nLedger Board Installation 01:47\nPost Sitting 04:25\nJoist Installation 07:04\nStarting Deck Boards 10:01\nJoist Hanger & Lag Screw Installation 13:16\nFinishing Deck Boards 16:44\nBeam Installation 17:39\nTension Tie Installation 19:57\nRoof Beam Installation 22:53\nRoof Framing 30:54\nRailing Installation 38:20\nFinished Deck 43:50\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a Covered Deck Attached to a House | Beginners Guide!", "https://www.youtube.com/watch?v=hZGjBD9nbH8", "hZGjBD9nbH8", 32, 2738, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e112300_How to Build a Covered Deck Attached to a House | Beginners Guide!.mp4", false, ~U[2025-11-23 23:30:48Z]] 19:20:51.875 [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" = ?) [32] 19:20:51.876 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-16 23:10:40Z], 32] 19:20:51.880 [debug] QUERY OK source="media_items" db=3.2ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I how to shingle a roof valley using the California-cut method! In this step-by-step tutorial, I’ll show you how to install architectural shingles in a clean, watertight valley that looks professional and lasts for decades. You’ll also see how to install drip edge, ice and water shield, roof underlayment, and caps! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nTools And Supplies Used In This Video👇\nBOSTITCH Coil Roofing Nailer https://amzlink.to/az0XtDRJNUU51\nIce & Water Shield https://shoplowes.me/49O8i8F\nSynthetic roof underlayment https://shoplowes.me/3XuqsEZ\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H\nGuardian Fall Protection Bucket of Safe-Tie https://amzlink.to/az0Mj3nnD46dh\n\nMore Helpful Related Videos👇\nhttps://youtu.be/0zM7J_acoWs\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nIntro 00:00\nDrip Edge Installation 00:44\nIce & Water Shield Underlayment Installation 03:22\nValley Shingle Installation 05:04\nShingle Caps Installation 21:07\nFinishing Touch 26:37\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style)", "56ef771e-73f5-4b42-bf5f-ff1b1127e3a7", "https://www.youtube.com/watch?v=AC4E0HHxG28", false, "AC4E0HHxG28", 32, [], 1701, false, 7, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e111600_How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style).mp4", false, false, 98, ~U[2025-11-16 23:10:40Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I how to shingle a roof valley using the California-cut method! In this step-by-step tutorial, I’ll show you how to install architectural shingles in a clean, watertight valley that looks professional and lasts for decades. You’ll also see how to install drip edge, ice and water shield, roof underlayment, and caps! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nTools And Supplies Used In This Video👇\nBOSTITCH Coil Roofing Nailer https://amzlink.to/az0XtDRJNUU51\nIce & Water Shield https://shoplowes.me/49O8i8F\nSynthetic roof underlayment https://shoplowes.me/3XuqsEZ\nLiquid Nails Roof Repair https://amzlink.to/az0DWeDGp1Z0H\nGuardian Fall Protection Bucket of Safe-Tie https://amzlink.to/az0Mj3nnD46dh\n\nMore Helpful Related Videos👇\nhttps://youtu.be/0zM7J_acoWs\nhttps://youtu.be/p0VM9L-0SYE\nhttps://youtu.be/E-tYxgNA_bg\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nIntro 00:00\nDrip Edge Installation 00:44\nIce & Water Shield Underlayment Installation 03:22\nValley Shingle Installation 05:04\nShingle Caps Installation 21:07\nFinishing Touch 26:37\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style)", "https://www.youtube.com/watch?v=AC4E0HHxG28", "AC4E0HHxG28", 32, 1701, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e111600_How to Shingle a Valley | BEGINNERS Step-by-Step GUIDE (California Style).mp4", false, ~U[2025-11-16 23:10:40Z]] 19:20:51.880 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [32] 19:20:51.881 [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-11-09 23:23:03Z], 32] 19:20:51.882 [debug] QUERY OK source="media_items" db=1.0ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to frame a valley roof for connecting two gable roofs. You’ll learn how to cut and install the valley rafter step by step, along with setting the ridge board, installing the sleeper (valley) board, and finding the correct bevel for your rafters. This simple method is perfect for tying two gable roofs together on any new build, garage, or addition.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/_mfSQz2l3ew\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Frame a Valley Roof | Connecting Two Gable Roofs!", "7b74864d-29b9-4264-80e1-5d437c02129e", "https://www.youtube.com/watch?v=qgAEQxS0AYw", false, "qgAEQxS0AYw", 32, [], 1103, false, 8, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110900_How to Frame a Valley Roof | Connecting Two Gable Roofs!.mp4", false, false, 98, ~U[2025-11-09 23:23:03Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to frame a valley roof for connecting two gable roofs. You’ll learn how to cut and install the valley rafter step by step, along with setting the ridge board, installing the sleeper (valley) board, and finding the correct bevel for your rafters. This simple method is perfect for tying two gable roofs together on any new build, garage, or addition.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/_mfSQz2l3ew\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Frame a Valley Roof | Connecting Two Gable Roofs!", "https://www.youtube.com/watch?v=qgAEQxS0AYw", "qgAEQxS0AYw", 32, 1103, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110900_How to Frame a Valley Roof | Connecting Two Gable Roofs!.mp4", false, ~U[2025-11-09 23:23:03Z]] 19:20:51.883 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [32] 19:20:51.884 [debug] QUERY OK source="media_items" db=0.8ms 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-02 23:22:08Z], 32] 19:20:51.885 [debug] QUERY OK source="media_items" db=1.1ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how we framed a roof with trusses and framed in the valley step-by-step and tie the whole roof structure together. We cover setting gable trusses, spacing and bracing common trusses, and getting the roof ready for sheathing. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\nSimpson StrongTie Hurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nGable Truss Preparation 04:42\nGable Truss Installation 12:31\nCommon Truss Installation 16:19\nGirder Truss Installation 22:50\nScissor Truss Installation 27:59\nGarage Truss Installation 30:07\nSub Fascia Board Installation 32:48\nRoof Sheathing Installation 38:08\nRoof Valley Framing 42:17\nRoof Sheathing Timelapse 01:00:01\nHurricane Ties 01:02:29\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 5 – Roof Framing & Truss Installation!", "ae69ef34-154b-439d-9880-10ce2ee0cc3b", "https://www.youtube.com/watch?v=_mfSQz2l3ew", false, "_mfSQz2l3ew", 32, [], 3915, false, 9, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110200_How to Build a House | Part 5 – Roof Framing & Truss Installation!.mp4", false, false, 98, ~U[2025-11-02 23:22:08Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how we framed a roof with trusses and framed in the valley step-by-step and tie the whole roof structure together. We cover setting gable trusses, spacing and bracing common trusses, and getting the roof ready for sheathing. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nAmazon Tools And Supplies Used In This Video👇\nKlein Digital Angle Gauge https://amzlink.to/az0owAe7UznFE\nBOSTITCH Metal Connector Nailer https://amzlink.to/az0My2slBzNWD\nStair Gauges https://amzlink.to/az0I5GpgzQTtl\nSimpson StrongTie Hurricane Ties https://amzlink.to/az0iTVmxaOVl4\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ZnZUZ8Yp9MA?si=zmeWS3kGvhVV0V5_\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nGable Truss Preparation 04:42\nGable Truss Installation 12:31\nCommon Truss Installation 16:19\nGirder Truss Installation 22:50\nScissor Truss Installation 27:59\nGarage Truss Installation 30:07\nSub Fascia Board Installation 32:48\nRoof Sheathing Installation 38:08\nRoof Valley Framing 42:17\nRoof Sheathing Timelapse 01:00:01\nHurricane Ties 01:02:29\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 5 – Roof Framing & Truss Installation!", "https://www.youtube.com/watch?v=_mfSQz2l3ew", "_mfSQz2l3ew", 32, 3915, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e110200_How to Build a House | Part 5 – Roof Framing & Truss Installation!.mp4", false, ~U[2025-11-02 23:22:08Z]] 19:20:51.886 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.886 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-20 22:36:41Z], 32] 19:20:51.888 [debug] QUERY OK source="media_items" db=1.1ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to build a house by framing the interior walls from start to finish! This is a great beginner’s guide that covers layout, marking plates, building T-walls, framing door openings, and keeping rooms square. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nhttps://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nChalking Layout Lines 02:20\nWall Plates & Layout 07:06\nBuilding Jacks & T-Wall Assemblies 19:32\nWall Assembly 26:30\nStanding Up and Securing Walls 34:15\nLadder Blocking 39:24\nProperly Securing Walls 41:38\nDouble Plating Walls 44:42\nWall Tour 47:54\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 4 – Interior Wall Framing for Beginners!", "ec378a21-42c2-4b1b-98fe-b383799e16d8", "https://www.youtube.com/watch?v=L7bkUvp9rx0", false, "L7bkUvp9rx0", 32, [], 2964, false, 10, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e102000_How to Build a House | Part 4 – Interior Wall Framing for Beginners!.mp4", false, false, 98, ~U[2025-10-20 22:36:41Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to build a house by framing the interior walls from start to finish! This is a great beginner’s guide that covers layout, marking plates, building T-walls, framing door openings, and keeping rooms square. This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nhttps://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nChalking Layout Lines 02:20\nWall Plates & Layout 07:06\nBuilding Jacks & T-Wall Assemblies 19:32\nWall Assembly 26:30\nStanding Up and Securing Walls 34:15\nLadder Blocking 39:24\nProperly Securing Walls 41:38\nDouble Plating Walls 44:42\nWall Tour 47:54\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 4 – Interior Wall Framing for Beginners!", "https://www.youtube.com/watch?v=L7bkUvp9rx0", "L7bkUvp9rx0", 32, 2964, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e102000_How to Build a House | Part 4 – Interior Wall Framing for Beginners!.mp4", false, ~U[2025-10-20 22:36:41Z]] 19:20:51.888 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.889 [debug] QUERY OK source="media_items" db=0.7ms 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-10-13 00:24:02Z], 32] 19:20:51.891 [debug] QUERY OK source="media_items" db=1.1ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to build a house by showing how to frame exterior walls from start to finish! This is a great beginners guide to layout, plates, studs, headers, sheathing, and bracing to keep everything straight and plumb. I also show how to frame the attached garage! This video shows every step of the process so you can frame walls. I also show how to frame the attached garage! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ufvcMq8aJTw?si=hoQlsNfKNEQ7tFdG\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nWall Layout & Plates 01:37\nHeader Construction 07:25\nWindow & Door Jacks 13:11\nLong Wall Layout 17:43\nWall Intersections 21:58\nWall Construction 23:58\nWall Sheathing 34:05\nHouse Wrap 42:12\nFraming and Standing the Walls (Time-Lapse) 43:32\nStanding Walls Explained 52:46\nAttached Garage Framing 55:25\nHouse Wrap Taping 01:06:02\nDouble Plating Walls 01:08:57\nAdditional Information 01:13:39\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 3 – Exterior Wall Framing for Beginners!", "4c630c9f-ae39-4d8a-a6e9-1affaa875945", "https://www.youtube.com/watch?v=mxBFA6XGFPY", false, "mxBFA6XGFPY", 32, [], 4811, false, 11, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e101300_How to Build a House | Part 3 – Exterior Wall Framing for Beginners!.mp4", false, false, 98, ~U[2025-10-13 00:24:02Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to build a house by showing how to frame exterior walls from start to finish! This is a great beginners guide to layout, plates, studs, headers, sheathing, and bracing to keep everything straight and plumb. I also show how to frame the attached garage! This video shows every step of the process so you can frame walls. I also show how to frame the attached garage! This is part of the \"How to Build a House\" series where will are building this house step-by-step start to finish. Check it out!👇\n\nHow to Build a House series https://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvr\n\nMore Helpful Related Videos👇\nhttps://www.youtube.com/playlist?list=PLS7MTj0ntoKsIZSh0PFsXrDzHgPM-9ltA\nhttps://youtu.be/ufvcMq8aJTw?si=hoQlsNfKNEQ7tFdG\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nWall Layout & Plates 01:37\nHeader Construction 07:25\nWindow & Door Jacks 13:11\nLong Wall Layout 17:43\nWall Intersections 21:58\nWall Construction 23:58\nWall Sheathing 34:05\nHouse Wrap 42:12\nFraming and Standing the Walls (Time-Lapse) 43:32\nStanding Walls Explained 52:46\nAttached Garage Framing 55:25\nHouse Wrap Taping 01:06:02\nDouble Plating Walls 01:08:57\nAdditional Information 01:13:39\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Build a House | Part 3 – Exterior Wall Framing for Beginners!", "https://www.youtube.com/watch?v=mxBFA6XGFPY", "mxBFA6XGFPY", 32, 4811, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e101300_How t (truncated) 19:20:51.891 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.892 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 22:17:24Z], 32] 19:20:51.893 [debug] QUERY OK source="media_items" db=1.1ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show how to install subfloor the right way and see the difference between AdvanTech and standard OSB subfloor! In this step-by-step guide, I’ll show you how to lay and fasten subfloor, explain why AdvanTech is worth the cost, and share real-world tips for a long-lasting, squeak-free floor. Perfect for DIYers, homeowners, or anyone framing their own house.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools Used In This Video 👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\nFloor Framing Material https://shoplowes.me/4mSMWKl\nAdvantech Subfloor https://shoplowes.me/4mGcvOu\nOSB Subfloor https://shoplowes.me/479bxWp\n28 oz subfloor Liquid nails https://shoplowes.me/4gL6YVD\n2 3/8” nails ring shank gal. https://shoplowes.me/4o05mdb\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvrd\n\nMore Helpful Related Videos👇\nhttps://youtu.be/iOh2kBY1RIU\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nAdvanTech Subfloor Installation 00:16\nStandard OSB Subfloor Installation 17:15\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!", "62520833-e79f-43e7-a37e-a57022a8ea1b", "https://www.youtube.com/watch?v=ahSvRUnt6IQ", false, "ahSvRUnt6IQ", 32, [], 1730, false, 12, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!.mp4", false, false, 79, ~U[2025-10-05 22:17:24Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "In this video, I show how to install subfloor the right way and see the difference between AdvanTech and standard OSB subfloor! In this step-by-step guide, I’ll show you how to lay and fasten subfloor, explain why AdvanTech is worth the cost, and share real-world tips for a long-lasting, squeak-free floor. Perfect for DIYers, homeowners, or anyone framing their own house.\n\n📚 COURSE MEMBERSHIPS\n Become a Channel Member (Members-Only Course Videos)\n👉 Join here: https://www.youtube.com/channel/UCUJXaEduMHGB3Iap3DusmAA/join\n👷\u200D♂️ Watch every full course video directly on YouTube — it’s quick, simple, and you can cancel anytime right inside YouTube.\n\nDISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools Used In This Video 👇\nTool belt and more https://amzlink.to/az0BbPeanMgZT\n\nLowe's Material Used In This Video 👇\nFloor Framing Material https://shoplowes.me/4mSMWKl\nAdvantech Subfloor https://shoplowes.me/4mGcvOu\nOSB Subfloor https://shoplowes.me/479bxWp\n28 oz subfloor Liquid nails https://shoplowes.me/4gL6YVD\n2 3/8” nails ring shank gal. https://shoplowes.me/4o05mdb\n\nHome Depot Tools Used In This Video 👇\nRIDGID 18V Brushless Cordless 6-Tool Combo Kit https://thehomedepotcreator.pxf.io/BnLWa0\nRIDGID 18V Brushless Cordless 30° 3-1/2 in. Framing Nailer https://thehomedepotcreator.pxf.io/radvrd\n\nMore Helpful Related Videos👇\nhttps://youtu.be/iOh2kBY1RIU\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\nTimestamps\nIntro 00:00\nAdvanTech Subfloor Installation 00:16\nStandard OSB Subfloor Installation 17:15\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!", "https://www.youtube.com/watch?v=ahSvRUnt6IQ", "ahSvRUnt6IQ", 32, 1730, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_How to Install Subfloor | AdvanTech VS. Standard OSB | Step-by-Step for Beginners!.mp4", false, ~U[2025-10-05 22:17:24Z]] 19:20:51.894 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.894 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:38:54Z], 32] 19:20:51.895 [debug] QUERY OK source="media_items" db=0.8ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | String Line and Marking Lines", "02962663-3670-4cfb-8464-132b279a0471", "https://www.youtube.com/watch?v=IVSRkYxswz0", false, "IVSRkYxswz0", 32, [], 238, false, 13, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | String Line and Marking Lines.NA", false, false, 79, ~U[2025-10-05 21:38:54Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | String Line and Marking Lines", "https://www.youtube.com/watch?v=IVSRkYxswz0", "IVSRkYxswz0", 32, 238, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | String Line and Marking Lines.NA", false, ~U[2025-10-05 21:38:54Z]] 19:20:51.896 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.897 [debug] QUERY OK source="media_items" db=0.7ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:35:43Z], 32] 19:20:51.898 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | Squaring Up", "ff29ee6f-b601-437c-9628-087794e66b27", "https://www.youtube.com/watch?v=Mwo1gI7yzsU", false, "Mwo1gI7yzsU", 32, [], 312, false, 14, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | Squaring Up.NA", false, false, 79, ~U[2025-10-05 21:35:43Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | Squaring Up", "https://www.youtube.com/watch?v=Mwo1gI7yzsU", "Mwo1gI7yzsU", 32, 312, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | Squaring Up.NA", false, ~U[2025-10-05 21:35:43Z]] 19:20:51.898 [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" = ?) [32] 19:20:51.899 [debug] QUERY OK source="media_items" db=0.7ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:31:20Z], 32] 19:20:51.900 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | First Two Corners", "472650ec-33a1-418f-9517-714b2e25f589", "https://www.youtube.com/watch?v=TW7Wxk2zBVo", false, "TW7Wxk2zBVo", 32, [], 118, false, 15, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | First Two Corners.NA", false, false, 79, ~U[2025-10-05 21:31:20Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House | First Two Corners", "https://www.youtube.com/watch?v=TW7Wxk2zBVo", "TW7Wxk2zBVo", 32, 118, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House | First Two Corners.NA", false, ~U[2025-10-05 21:31:20Z]] 19:20:51.901 [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" = ?) [32] 19:20:51.901 [debug] QUERY OK source="media_items" db=0.8ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:30:04Z], 32] 19:20:51.903 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out House | Tools and Supplies", "76628faf-2ac4-4f64-83d4-634421d91b33", "https://www.youtube.com/watch?v=Bv2BiIu5Wis", false, "Bv2BiIu5Wis", 32, [], 36, false, 16, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out House | Tools and Supplies.NA", false, false, 79, ~U[2025-10-05 21:30:04Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out House | Tools and Supplies", "https://www.youtube.com/watch?v=Bv2BiIu5Wis", "Bv2BiIu5Wis", 32, 36, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out House | Tools and Supplies.NA", false, ~U[2025-10-05 21:30:04Z]] 19:20:51.903 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.904 [debug] QUERY OK source="media_items" db=0.7ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:29:32Z], 32] 19:20:51.905 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House Intro", "01249d3f-bfe9-44c5-bae7-8a82d1c83b73", "https://www.youtube.com/watch?v=jPi3T0LA4tI", false, "jPi3T0LA4tI", 32, [], 13, false, 17, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House Intro.NA", false, false, 79, ~U[2025-10-05 21:29:32Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Staking Out a House Intro", "https://www.youtube.com/watch?v=jPi3T0LA4tI", "jPi3T0LA4tI", 32, 13, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Staking Out a House Intro.NA", false, ~U[2025-10-05 21:29:32Z]] 19:20:51.905 [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" = ?) [32] 19:20:51.906 [debug] QUERY OK source="media_items" db=0.7ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:19:21Z], 32] 19:20:51.907 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 2", "0465976f-a3ef-468f-b4a6-b55a7af2d6e0", "https://www.youtube.com/watch?v=eNniaqgss2A", false, "eNniaqgss2A", 32, [], 583, false, 18, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 2.NA", false, false, 79, ~U[2025-10-05 21:19:21Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 2", "https://www.youtube.com/watch?v=eNniaqgss2A", "eNniaqgss2A", 32, 583, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 2.NA", false, ~U[2025-10-05 21:19:21Z]] 19:20:51.908 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 19:20:51.908 [debug] QUERY OK source="media_items" db=0.8ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:16:55Z], 32] 19:20:51.910 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 1", "719b68a0-518a-4a5b-96e9-8851b0af2d57", "https://www.youtube.com/watch?v=1TX4W0lRp48", false, "1TX4W0lRp48", 32, [], 247, false, 19, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 1.NA", false, false, 79, ~U[2025-10-05 21:16:55Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Electrical Part 1", "https://www.youtube.com/watch?v=1TX4W0lRp48", "1TX4W0lRp48", 32, 247, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Electrical Part 1.NA", false, ~U[2025-10-05 21:16:55Z]] 19:20:51.910 [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" = ?) [32] 19:20:51.911 [debug] QUERY OK source="media_items" db=0.7ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 21:12:18Z], 32] 19:20:51.912 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Plumbing", "1d0b897d-7d31-4568-b28e-77581db38f3e", "https://www.youtube.com/watch?v=asFBJT0pHXs", false, "asFBJT0pHXs", 32, [], 577, false, 20, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Plumbing.NA", false, false, 79, ~U[2025-10-05 21:12:18Z], ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], "DISCLAIMER- There are affiliate links in this description. I earn a small commission that helps support the channel at no extra cost to you when the links are used.\n\nMy Amazon Storefront 👉 https://amzlink.to/az0KsA48iJTo2\n\nMy Lowe's Storefront 👉 https://shoplowes.me/4npuf1o\n\nAmazon Tools And Supplies Used In This Video👇\n[PASTE VIDEO INTRO HERE]\n\nLowe's Material Used In This Video 👇\n[PASTE VIDEO INTRO HERE]\n\nMore Helpful Related Videos👇\n[PASTE VIDEO INTRO HERE]\n\n📩 FREE Newsletter – Get Exclusive DIY Tips & Updates!\nhttps://newsletter.excellentlaborer.com/\n\n🔴 Subscribe to this DIY channel! http://youtube.com/theexcellentlaborer?sub_confirmation=1\n\n🟡 Check out my Amazon store: https://amzlink.to/az0KsA48iJTo2 . Here you will find tools and supplies used in my videos. (DISCLAIMER- I am an Amazon affiliate. I get a small commission that helps support the channel at no extra cost to you)\n\n\n\n\nDISCLAIMER:\nI am not a licensed plumber or electrician. All content provided in these videos is for entertainment and informational purposes only and should not be construed as professional advice. DIY and construction projects carry inherent risks. You are solely responsible for your own safety, expenses, and the outcome of your projects. Always use your best judgment, follow all applicable local laws, building codes, and regulations, and consult licensed professionals when necessary. I expressly disclaim any liability for any injury, loss, financial damages, or other damages incurred as a result of the information provided. Perform all work at your own risk.", "Floor Plan | Plumbing", "https://www.youtube.com/watch?v=asFBJT0pHXs", "asFBJT0pHXs", 32, 577, false, "/downloads/chris/tubes/The Excellent Laborer_[UCUJXaEduMHGB3Iap3DusmAA]/Season 2025/s2025e100500_Floor Plan | Plumbing.NA", false, ~U[2025-10-05 21:12:18Z]] 19:20:51.912 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z], 32] 19:20:51.913 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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")))) [32] 19:20:51.928 [debug] QUERY OK source="media_items" db=0.8ms idle=2.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")))) [32] 19:20:51.929 [debug] QUERY OK source="media_items" db=0.0ms idle=2.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [32] 19:20:51.929 [debug] QUERY OK source="tasks" db=0.1ms idle=1.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88143, 32, ~U[2026-01-01 01:20:51Z], ~U[2026-01-01 01:20:51Z]] 19:20:51.930 [info] {"args":{"id":32},"id":87771,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":35252485,"event":"job:stop","queue_time":729479,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:21:00.838 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:21:17.228 [info] {"source":"oban","duration":3315,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:21:47.233 [info] {"source":"oban","duration":3682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:22:00.840 [info] {"source":"oban","duration":301,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:22:17.238 [info] {"source":"oban","duration":3811,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:22:47.242 [info] {"source":"oban","duration":3398,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:23:00.841 [info] {"source":"oban","duration":356,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:23:17.246 [info] {"source":"oban","duration":2878,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:23:47.251 [info] {"source":"oban","duration":3820,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:24:00.842 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:24:17.255 [info] {"source":"oban","duration":2394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:24:47.258 [info] {"source":"oban","duration":2828,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:25:00.843 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:25:17.262 [info] {"source":"oban","duration":2805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:25:47.267 [info] {"source":"oban","duration":3860,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:26:00.845 [info] {"source":"oban","duration":277,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:26:17.272 [info] {"source":"oban","duration":3732,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:26:47.277 [info] {"source":"oban","duration":3199,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:27:00.845 [info] {"source":"oban","duration":153,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:27:17.281 [info] {"source":"oban","duration":4083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:27:47.284 [info] {"source":"oban","duration":2524,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:27:48.374 [info] {"args":{"id":1191402},"id":86959,"meta":{},"system_time":1767230868374097704,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":18,"tags":["media_item","media_fetching","show_in_dashboard"]} 19:27:48.374 [debug] QUERY OK source="media_items" db=0.4ms idle=27.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" = ?) [1191402] 19:27:48.374 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:27:48.375 [debug] QUERY OK source="sources" db=0.4ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:27:48.375 [debug] QUERY OK source="media_profiles" db=0.3ms idle=28.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] 19:27:48.376 [debug] QUERY OK source="media_items" db=0.2ms idle=7.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1191402] 19:27:48.377 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1191402] 19:27:48.377 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:27:48.377 [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 [] 19:27:48.377 [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 [] 19:27:48.377 [debug] Running yt-dlp command for action: get_downloadable_status 19:27:48.378 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:27:48.378 [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 [] 19:27:48.378 [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 [] 19:27:48.379 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0S7mQUh0sD8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/20/a6/20a6e2c387966aec628169a93032280a52b573fdcac279e2c1453556d42c1bb7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:27:51.035 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0S7mQUh0sD8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/20/a6/20a6e2c387966aec628169a93032280a52b573fdcac279e2c1453556d42c1bb7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 0S7mQUh0sD8: Join this channel to get access to members-only content like this video, and other exclusive perks. 19:27:51.035 [error] yt-dlp download error for media item #1191402: "ERROR: [youtube] 0S7mQUh0sD8: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 19:27:51.035 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1191402},"id":86959,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2661419,"event":"job:exception","queue_time":151258,"attempt":18,"tags":["media_item","media_fetching","show_in_dashboard"]} 19:28:00.846 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:28:17.288 [info] {"source":"oban","duration":3364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:28:47.292 [info] {"source":"oban","duration":3226,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:29:00.847 [info] {"source":"oban","duration":162,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:29:17.297 [info] {"source":"oban","duration":3576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:29:38.505 [info] {"args":{"id":51},"id":88142,"meta":{},"system_time":1767230978505118511,"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"]} 19:29:38.505 [debug] QUERY OK source="sources" db=0.4ms idle=158.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [51] 19:29:38.506 [debug] QUERY OK source="settings" db=0.1ms idle=159.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:29:38.506 [debug] QUERY OK source="media_profiles" db=0.3ms idle=159.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] 19:29:38.506 [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 [] 19:29:38.506 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 19:29:38.809 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:29:38.809 [debug] QUERY OK source="media_items" db=0.4ms idle=304.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:29:38.810 [debug] QUERY OK source="media_items" db=0.3ms idle=304.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] 19:29:38.811 [debug] QUERY OK source="tasks" db=0.1ms idle=304.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88144, 51, ~U[2026-01-01 01:29:38Z], ~U[2026-01-01 01:29:38Z]] 19:29:38.811 [info] {"args":{"id":51},"id":88142,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":306469,"event":"job:stop","queue_time":510577,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 19:29:47.301 [info] {"source":"oban","duration":3570,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:30:00.848 [info] {"source":"oban","duration":173,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:30:17.306 [info] {"source":"oban","duration":3706,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:30:47.310 [info] {"source":"oban","duration":3678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:31:00.849 [info] {"source":"oban","duration":127,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:31:17.313 [info] {"source":"oban","duration":2927,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:31:47.317 [info] {"source":"oban","duration":2596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:32:00.850 [info] {"source":"oban","duration":205,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:32:09.424 [info] GET / 19:32:09.424 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 19:32:09.424 [debug] QUERY OK source="settings" db=0.1ms idle=1077.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:32:09.424 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1077.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 19:32:09.424 [debug] QUERY OK source="sources" db=0.0ms idle=1077.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 19:32:09.443 [debug] QUERY OK source="media_items" db=18.6ms idle=1078.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:32:09.445 [debug] QUERY OK source="media_items" db=1.7ms idle=744.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:32:09.445 [debug] QUERY OK source="settings" db=0.0ms idle=21.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:32:09.445 [debug] QUERY OK source="settings" db=0.0ms idle=21.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:32:09.446 [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 [] 19:32:09.446 [debug] QUERY OK source="tasks" db=0.1ms idle=3.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 19:32:09.447 [debug] QUERY OK source="sources" db=0.1ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [52] 19:32:09.449 [debug] QUERY OK source="media_items" db=1.7ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:32:09.449 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:32:09.449 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [30, 55, 37, 29] 19:32:09.460 [debug] QUERY OK source="media_items" db=10.1ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 19:32:09.461 [debug] QUERY OK source="media_items" db=0.5ms idle=13.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:32:09.461 [debug] QUERY OK source="sources" db=0.1ms idle=12.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:32:09.462 [info] Sent 200 in 38ms 19:32:17.320 [info] {"source":"oban","duration":3269,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:32:47.324 [info] {"source":"oban","duration":3327,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:33:00.851 [info] {"source":"oban","duration":150,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:33:17.328 [info] {"source":"oban","duration":2897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:33:47.331 [info] {"source":"oban","duration":2394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:34:00.852 [info] {"source":"oban","duration":161,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:34:17.334 [info] {"source":"oban","duration":2122,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:34:17.899 [info] {"args":{"id":43},"id":88130,"meta":{},"system_time":1767231257899415887,"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"]} 19:34:17.900 [debug] QUERY OK source="sources" db=0.4ms idle=1553.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:17.900 [debug] QUERY OK source="settings" db=0.4ms idle=1008.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:34:17.904 [debug] QUERY OK source="media_items" db=3.4ms idle=566.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")))) [43] 19:34:17.907 [debug] QUERY OK source="media_items" db=3.2ms idle=10.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 19:34:17.907 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 19:34:17.907 [debug] QUERY OK source="settings" db=0.0ms 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 [] 19:34:17.908 [debug] QUERY OK source="settings" db=0.0ms 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 [] 19:34:17.910 [debug] QUERY OK source="media_items" db=1.4ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [43] 19:34:17.912 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:34:17.912 [debug] Current batch of media processed. Will check again in 1000ms 19:34:17.912 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:34:17.912 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:34:17.912 [debug] QUERY OK source="settings" db=0.0ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:34:17.912 [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/ba/89/ba89d8303c4a57eb2a814338ac6157a1a482c56c8e752cc17f7a8b6d17c2784d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ac/3a/ac3a21b0dd2e3de722fea0d5ad70f8583c1e62ef69716ed21ffe30efc291c390.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:34:18.913 [debug] Current batch of media processed. Will check again in 1000ms 19:34:19.913 [debug] Current batch of media processed. Will check again in 1000ms 19:34:20.915 [debug] Current batch of media processed. Will check again in 1000ms 19:34:21.915 [debug] Current batch of media processed. Will check again in 1000ms 19:34:22.917 [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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "duration" => 1514, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", "id" => "jlz6xAk85hY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jlz6xAk85hY", "playlist_index" => 1, "timestamp" => 1766830551, "title" => "New package manager for portable apps & other Linux Weekly News", "upload_date" => "20251227"} 19:34:22.917 [debug] QUERY OK source="sources" db=0.1ms idle=1570.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:34:22.917 [debug] QUERY OK source="sources" db=0.1ms idle=1571.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:22.920 [debug] QUERY OK source="media_items" db=2.8ms idle=1571.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-27 10:15:51Z], 43] 19:34:22.922 [debug] QUERY OK source="media_items" db=1.1ms idle=1023.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "ffeed56b-9c83-4489-9721-2022b2a8be4e", "https://www.youtube.com/watch?v=jlz6xAk85hY", false, "jlz6xAk85hY", 43, [], 1514, false, 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, false, 98, ~U[2025-12-27 10:15:51Z], ~U[2026-01-01 01:34:22Z], ~U[2026-01-01 01:34:22Z], "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "https://www.youtube.com/watch?v=jlz6xAk85hY", "jlz6xAk85hY", 43, 1514, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, ~U[2025-12-27 10:15:51Z]] 19:34:22.922 [debug] QUERY OK source="sources" db=0.1ms idle=23.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:22.923 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:34:22.923 [debug] QUERY OK source="media_items" db=0.1ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1873433] 19:34:22.923 [debug] Current batch of media processed. Will check again in 1000ms 19:34:23.924 [debug] Current batch of media processed. Will check again in 1000ms 19:34:24.926 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "duration" => 1589, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", "id" => "3s83kULBiJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3s83kULBiJ0", "playlist_index" => 2, "timestamp" => 1766486478, "title" => "elementary OS 8.1 is amazing, but still not for everyone", "upload_date" => "20251223"} 19:34:24.926 [debug] QUERY OK source="sources" db=0.1ms idle=579.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:34:24.926 [debug] QUERY OK source="sources" db=0.0ms idle=580.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:24.929 [debug] QUERY OK source="media_items" db=3.0ms idle=580.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-23 10:41:18Z], 43] 19:34:24.949 [debug] QUERY OK source="media_items" db=19.2ms idle=583.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "1e4fb01e-e688-4f00-a611-88fa4652e9ed", "https://www.youtube.com/watch?v=3s83kULBiJ0", false, "3s83kULBiJ0", 43, [], 1589, false, 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, false, 98, ~U[2025-12-23 10:41:18Z], ~U[2026-01-01 01:34:24Z], ~U[2026-01-01 01:34:24Z], "Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "https://www.youtube.com/watch?v=3s83kULBiJ0", "3s83kULBiJ0", 43, 1589, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, ~U[2025-12-23 10:41:18Z]] 19:34:24.950 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [43] 19:34:24.950 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 19:34:24.951 [debug] QUERY OK source="media_items" db=0.5ms idle=23.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1841644] 19:34:24.951 [debug] Current batch of media processed. Will check again in 1000ms 19:34:25.951 [debug] Current batch of media processed. Will check again in 1000ms 19:34:26.952 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "duration" => 1426, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", "id" => "dIxcwRdS5n8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dIxcwRdS5n8", "playlist_index" => 3, "timestamp" => 1766227189, "title" => "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "upload_date" => "20251220"} 19:34:26.953 [debug] QUERY OK source="sources" db=0.2ms idle=606.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:34:26.953 [debug] QUERY OK source="sources" db=0.1ms idle=606.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:26.956 [debug] QUERY OK source="media_items" db=2.8ms idle=607.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 10:39:49Z], 43] 19:34:26.964 [debug] QUERY OK source="media_items" db=7.7ms idle=610.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "5e95beff-1256-412e-b46d-7d4b8b1f8103", "https://www.youtube.com/watch?v=dIxcwRdS5n8", false, "dIxcwRdS5n8", 43, [], 1426, false, 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-20 10:39:49Z], ~U[2026-01-01 01:34:26Z], ~U[2026-01-01 01:34:26Z], "Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "https://www.youtube.com/watch?v=dIxcwRdS5n8", "dIxcwRdS5n8", 43, 1426, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, ~U[2025-12-20 10:39:49Z]] 19:34:26.965 [debug] QUERY OK source="sources" db=0.2ms idle=58.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:26.965 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 19:34:26.966 [debug] QUERY OK source="media_items" db=0.2ms 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 [1817767] 19:34:26.966 [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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "duration" => 530, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", "id" => "WtNb425nJT4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WtNb425nJT4", "playlist_index" => 4, "timestamp" => 1766134446, "title" => "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "upload_date" => "20251219"} 19:34:26.966 [debug] QUERY OK source="sources" db=0.4ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:26.967 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:26.969 [debug] QUERY OK source="media_items" db=2.5ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-19 08:54:06Z], 43] 19:34:26.970 [debug] QUERY OK source="media_items" db=0.7ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "838a6fba-e8c1-47e5-9773-076c3c3124db", "https://www.youtube.com/watch?v=WtNb425nJT4", false, "WtNb425nJT4", 43, [], 530, false, 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, false, 98, ~U[2025-12-19 08:54:06Z], ~U[2026-01-01 01:34:26Z], ~U[2026-01-01 01:34:26Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "https://www.youtube.com/watch?v=WtNb425nJT4", "WtNb425nJT4", 43, 530, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, ~U[2025-12-19 08:54:06Z]] 19:34:26.970 [debug] QUERY OK source="sources" db=0.1ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:26.971 [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] 19:34:26.971 [debug] QUERY OK source="media_items" db=0.2ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1808956] 19:34:26.971 [info] Kicking off download for media item #1808956 (WtNb425nJT4) 19:34:26.972 [debug] Current batch of media processed. Will check again in 1000ms 19:34:27.973 [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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "duration" => 523, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", "id" => "rGqKAmDdmXM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rGqKAmDdmXM", "playlist_index" => 5, "timestamp" => 1766047170, "title" => "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "upload_date" => "20251218"} 19:34:27.974 [debug] QUERY OK source="sources" db=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:27.974 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:27.977 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 08:39:30Z], 43] 19:34:27.978 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "ccf4694c-9a28-4400-ab72-6accba2551bd", "https://www.youtube.com/watch?v=rGqKAmDdmXM", false, "rGqKAmDdmXM", 43, [], 523, false, 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, false, 98, ~U[2025-12-18 08:39:30Z], ~U[2026-01-01 01:34:27Z], ~U[2026-01-01 01:34:27Z], "👕 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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "https://www.youtube.com/watch?v=rGqKAmDdmXM", "rGqKAmDdmXM", 43, 523, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, ~U[2025-12-18 08:39:30Z]] 19:34:27.978 [debug] QUERY OK source="sources" db=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" = ?) [43] 19:34:27.978 [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] 19:34:27.979 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1801607] 19:34:27.979 [info] Kicking off download for media item #1801607 (rGqKAmDdmXM) 19:34:27.980 [debug] Current batch of media processed. Will check again in 1000ms 19:34:28.980 [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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "duration" => 634, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", "id" => "ukEIVoB7ycc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ukEIVoB7ycc", "playlist_index" => 6, "timestamp" => 1765962222, "title" => "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "upload_date" => "20251217"} 19:34:28.981 [debug] QUERY OK source="sources" db=0.2ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:28.981 [debug] QUERY OK source="sources" db=0.1ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:28.984 [debug] QUERY OK source="media_items" db=3.0ms idle=1002.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-17 09:03:42Z], 43] 19:34:28.985 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "9ae00d1c-8e30-4bc1-9d1e-5fc84106de96", "https://www.youtube.com/watch?v=ukEIVoB7ycc", false, "ukEIVoB7ycc", 43, [], 634, false, 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, false, 98, ~U[2025-12-17 09:03:42Z], ~U[2026-01-01 01:34:28Z], ~U[2026-01-01 01:34:28Z], "👕 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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "https://www.youtube.com/watch?v=ukEIVoB7ycc", "ukEIVoB7ycc", 43, 634, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, ~U[2025-12-17 09:03:42Z]] 19:34:28.986 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [43] 19:34:28.986 [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] 19:34:28.986 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1793703] 19:34:28.986 [info] Kicking off download for media item #1793703 (ukEIVoB7ycc) 19:34:28.988 [debug] Current batch of media processed. Will check again in 1000ms 19:34:29.989 [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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "duration" => 590, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", "id" => "hR2qvY64i-s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hR2qvY64i-s", "playlist_index" => 7, "timestamp" => 1765875787, "title" => "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "upload_date" => "20251216"} 19:34:29.990 [debug] QUERY OK source="sources" db=0.3ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:29.990 [debug] QUERY OK source="sources" db=0.1ms idle=1004.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:29.993 [debug] QUERY OK source="media_items" db=2.8ms idle=1003.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 09:03:07Z], 43] 19:34:29.994 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "72e56b7a-03d4-4170-b569-4d42d52a1905", "https://www.youtube.com/watch?v=hR2qvY64i-s", false, "hR2qvY64i-s", 43, [], 590, false, 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, false, 98, ~U[2025-12-16 09:03:07Z], ~U[2026-01-01 01:34:29Z], ~U[2026-01-01 01:34: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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "https://www.youtube.com/watch?v=hR2qvY64i-s", "hR2qvY64i-s", 43, 590, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, ~U[2025-12-16 09:03:07Z]] 19:34:29.995 [debug] QUERY OK source="sources" db=0.1ms idle=82.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:29.995 [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] 19:34:29.995 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1785671] 19:34:29.995 [info] Kicking off download for media item #1785671 (hR2qvY64i-s) 19:34:29.996 [debug] Current batch of media processed. Will check again in 1000ms 19:34:30.997 [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 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "duration" => 1284, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", "id" => "koT46u0nB_E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=koT46u0nB_E", "playlist_index" => 8, "timestamp" => 1765793487, "title" => "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "upload_date" => "20251215"} 19:34:30.998 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:30.998 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:31.001 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.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-15 10:11:27Z], 43] 19:34:31.002 [debug] QUERY OK source="media_items" db=1.0ms idle=1005.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "18b1be09-1b1a-434f-be75-6903bd351f2d", "https://www.youtube.com/watch?v=koT46u0nB_E", false, "koT46u0nB_E", 43, [], 1284, false, 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, false, 97, ~U[2025-12-15 10:11:27Z], ~U[2026-01-01 01:34:31Z], ~U[2026-01-01 01:34:31Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "https://www.youtube.com/watch?v=koT46u0nB_E", "koT46u0nB_E", 43, 1284, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, ~U[2025-12-15 10:11:27Z]] 19:34:31.003 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 19:34:31.003 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:34:31.003 [debug] QUERY OK source="media_items" db=0.1ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1777966] 19:34:31.003 [info] Kicking off download for media item #1777966 (koT46u0nB_E) 19:34:31.005 [debug] Current batch of media processed. Will check again in 1000ms 19:34:32.005 [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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "duration" => 462, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", "id" => "DkBgwsHQoDc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DkBgwsHQoDc", "playlist_index" => 9, "timestamp" => 1765790894, "title" => "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "upload_date" => "20251215"} 19:34:32.006 [debug] QUERY OK source="sources" db=0.3ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:32.006 [debug] QUERY OK source="sources" db=0.0ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:32.009 [debug] QUERY OK source="media_items" db=3.0ms idle=1003.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 09:28:14Z], 43] 19:34:32.010 [debug] QUERY OK source="media_items" db=0.6ms idle=1005.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "aa73ea4a-480b-4dc5-98e6-0f6c9cb53ef6", "https://www.youtube.com/watch?v=DkBgwsHQoDc", false, "DkBgwsHQoDc", 43, [], 462, false, 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, false, 97, ~U[2025-12-15 09:28:14Z], ~U[2026-01-01 01:34:32Z], ~U[2026-01-01 01:34:32Z], "👕 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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "https://www.youtube.com/watch?v=DkBgwsHQoDc", "DkBgwsHQoDc", 43, 462, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, ~U[2025-12-15 09:28:14Z]] 19:34:32.011 [debug] QUERY OK source="sources" db=0.1ms idle=96.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:32.011 [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] 19:34:32.012 [debug] QUERY OK source="media_items" db=0.5ms 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 [1777967] 19:34:32.012 [info] Kicking off download for media item #1777967 (DkBgwsHQoDc) 19:34:32.013 [debug] Current batch of media processed. Will check again in 1000ms 19:34:33.014 [debug] Current batch of media processed. Will check again in 1000ms 19:34:34.015 [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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "duration" => 1591, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", "id" => "6gusWDr1Qw0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6gusWDr1Qw0", "playlist_index" => 10, "timestamp" => 1765623685, "title" => "New Linux smartphone & Other Linux News", "upload_date" => "20251213"} 19:34:34.016 [debug] QUERY OK source="sources" db=0.2ms idle=669.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:34:34.016 [debug] QUERY OK source="sources" db=0.1ms idle=669.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:34.019 [debug] QUERY OK source="media_items" db=2.7ms idle=670.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-13 11:01:25Z], 43] 19:34:34.021 [debug] QUERY OK source="media_items" db=1.1ms idle=673.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "c334d7a2-9901-45ec-97ad-fbe8be793580", "https://www.youtube.com/watch?v=6gusWDr1Qw0", false, "6gusWDr1Qw0", 43, [], 1591, false, 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, false, 98, ~U[2025-12-13 11:01:25Z], ~U[2026-01-01 01:34:34Z], ~U[2026-01-01 01:34:34Z], "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "https://www.youtube.com/watch?v=6gusWDr1Qw0", "6gusWDr1Qw0", 43, 1591, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, ~U[2025-12-13 11:01:25Z]] 19:34:34.021 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [43] 19:34:34.021 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:34:34.022 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1762357] 19:34:34.022 [debug] Current batch of media processed. Will check again in 1000ms 19:34:35.022 [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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "duration" => 651, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", "id" => "JWQbGDLlcyw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JWQbGDLlcyw", "playlist_index" => 11, "timestamp" => 1765532012, "title" => "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "upload_date" => "20251212"} 19:34:35.023 [debug] QUERY OK source="sources" db=0.2ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:35.023 [debug] QUERY OK source="sources" db=0.1ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:35.026 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 09:33:32Z], 43] 19:34:35.027 [debug] QUERY OK source="media_items" db=0.6ms idle=1004.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "52877ffd-c5d0-4be2-87ac-a5c687ba7ff5", "https://www.youtube.com/watch?v=JWQbGDLlcyw", false, "JWQbGDLlcyw", 43, [], 651, false, 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, false, 98, ~U[2025-12-12 09:33:32Z], ~U[2026-01-01 01:34:35Z], ~U[2026-01-01 01:34:35Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "https://www.youtube.com/watch?v=JWQbGDLlcyw", "JWQbGDLlcyw", 43, 651, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, ~U[2025-12-12 09:33:32Z]] 19:34:35.027 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [43] 19:34:35.028 [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] 19:34:35.028 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1753967] 19:34:35.028 [info] Kicking off download for media item #1753967 (JWQbGDLlcyw) 19:34:35.029 [debug] Current batch of media processed. Will check again in 1000ms 19:34:36.030 [debug] Current batch of media processed. Will check again in 1000ms 19:34:37.032 [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\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 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "duration" => 1884, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", "id" => "ob-Y77kuVwM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ob-Y77kuVwM", "playlist_index" => 12, "timestamp" => 1765466627, "title" => "Cosmic a great Linux desktop, but still limited", "upload_date" => "20251211"} 19:34:37.032 [debug] QUERY OK source="sources" db=0.1ms idle=685.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:34:37.032 [debug] QUERY OK source="sources" db=0.1ms idle=686.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:37.035 [debug] QUERY OK source="media_items" db=2.8ms idle=686.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 15:23:47Z], 43] 19:34:37.037 [debug] QUERY OK source="media_items" db=0.8ms idle=689.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "609e816c-70c2-4bec-b4a9-6a82791839eb", "https://www.youtube.com/watch?v=ob-Y77kuVwM", false, "ob-Y77kuVwM", 43, [], 1884, false, 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, false, 97, ~U[2025-12-11 15:23:47Z], ~U[2026-01-01 01:34:37Z], ~U[2026-01-01 01:34:37Z], "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "https://www.youtube.com/watch?v=ob-Y77kuVwM", "ob-Y77kuVwM", 43, 1884, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, ~U[2025-12-11 15:23:47Z]] 19:34:37.037 [debug] QUERY OK source="sources" db=0.1ms idle=117.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:37.037 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:34:37.038 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1748262] 19:34:37.038 [debug] Current batch of media processed. Will check again in 1000ms 19:34:38.038 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "duration" => 540, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", "id" => "AhM3Pxq_ycM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AhM3Pxq_ycM", "playlist_index" => 13, "timestamp" => 1765449034, "title" => "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "upload_date" => "20251211"} 19:34:38.039 [debug] QUERY OK source="sources" db=0.1ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:38.039 [debug] QUERY OK source="sources" db=0.1ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:38.042 [debug] QUERY OK source="media_items" db=3.0ms idle=1001.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 10:30:34Z], 43] 19:34:38.043 [debug] QUERY OK source="media_items" db=0.7ms idle=1004.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "39ba2a51-9c30-4776-9e4e-5b1fda6fe09c", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", false, "AhM3Pxq_ycM", 43, [], 540, false, 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, false, 97, ~U[2025-12-11 10:30:34Z], ~U[2026-01-01 01:34:38Z], ~U[2026-01-01 01:34:38Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", "AhM3Pxq_ycM", 43, 540, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, ~U[2025-12-11 10:30:34Z]] 19:34:38.043 [debug] QUERY OK source="sources" db=0.1ms idle=122.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:38.044 [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] 19:34:38.044 [debug] QUERY OK source="media_items" db=0.2ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1746368] 19:34:38.044 [info] Kicking off download for media item #1746368 (AhM3Pxq_ycM) 19:34:38.046 [debug] Current batch of media processed. Will check again in 1000ms 19:34:39.046 [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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "duration" => 610, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", "id" => "9XUHYL7-XtE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9XUHYL7-XtE", "playlist_index" => 14, "timestamp" => 1765358499, "title" => "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "upload_date" => "20251210"} 19:34:39.047 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:39.048 [debug] QUERY OK source="sources" db=0.1ms idle=1003.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:39.051 [debug] QUERY OK source="media_items" db=2.8ms idle=1003.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 09:21:39Z], 43] 19:34:39.052 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "d575daa7-20e9-46ae-8fbe-fd53d1704084", "https://www.youtube.com/watch?v=9XUHYL7-XtE", false, "9XUHYL7-XtE", 43, [], 610, false, 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, false, 98, ~U[2025-12-10 09:21:39Z], ~U[2026-01-01 01:34:39Z], ~U[2026-01-01 01:34:39Z], "👕 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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "https://www.youtube.com/watch?v=9XUHYL7-XtE", "9XUHYL7-XtE", 43, 610, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, ~U[2025-12-10 09:21:39Z]] 19:34:39.052 [debug] QUERY OK source="sources" db=0.1ms idle=129.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:39.052 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:34:39.052 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1738094] 19:34:39.052 [info] Kicking off download for media item #1738094 (9XUHYL7-XtE) 19:34:39.054 [debug] Current batch of media processed. Will check again in 1000ms 19:34:40.055 [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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "duration" => 717, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", "id" => "88ioofbr4BY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=88ioofbr4BY", "playlist_index" => 15, "timestamp" => 1765277167, "title" => "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "upload_date" => "20251209"} 19:34:40.055 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:40.056 [debug] QUERY OK source="sources" db=0.0ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:40.059 [debug] QUERY OK source="media_items" db=2.8ms idle=1003.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 10:46:07Z], 43] 19:34:40.060 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "0c21597f-cea5-4b7e-8393-c800ccaa0b01", "https://www.youtube.com/watch?v=88ioofbr4BY", false, "88ioofbr4BY", 43, [], 717, false, 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, false, 98, ~U[2025-12-09 10:46:07Z], ~U[2026-01-01 01:34:40Z], ~U[2026-01-01 01:34:40Z], "👕 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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "https://www.youtube.com/watch?v=88ioofbr4BY", "88ioofbr4BY", 43, 717, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, ~U[2025-12-09 10:46:07Z]] 19:34:40.060 [debug] QUERY OK source="sources" db=0.1ms idle=136.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:40.060 [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] 19:34:40.061 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1730841] 19:34:40.061 [info] Kicking off download for media item #1730841 (88ioofbr4BY) 19:34:40.062 [debug] Current batch of media processed. Will check again in 1000ms 19:34:41.062 [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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "duration" => 863, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", "id" => "-tKROWIsGRk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-tKROWIsGRk", "playlist_index" => 16, "timestamp" => 1765188052, "title" => "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "upload_date" => "20251208"} 19:34:41.063 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:41.064 [debug] QUERY OK source="sources" db=0.0ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:41.067 [debug] QUERY OK source="media_items" db=2.8ms idle=1003.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 10:00:52Z], 43] 19:34:41.068 [debug] QUERY OK source="media_items" db=0.8ms idle=1004.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "0dd8d0d5-4118-4ab9-9f41-528b947e6c34", "https://www.youtube.com/watch?v=-tKROWIsGRk", false, "-tKROWIsGRk", 43, [], 863, false, 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, false, 97, ~U[2025-12-08 10:00:52Z], ~U[2026-01-01 01:34:41Z], ~U[2026-01-01 01:34:41Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "https://www.youtube.com/watch?v=-tKROWIsGRk", "-tKROWIsGRk", 43, 863, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, ~U[2025-12-08 10:00:52Z]] 19:34:41.068 [debug] QUERY OK source="sources" db=0.1ms idle=142.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:41.068 [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] 19:34:41.069 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1722376] 19:34:41.069 [info] Kicking off download for media item #1722376 (-tKROWIsGRk) 19:34:41.070 [debug] Current batch of media processed. Will check again in 1000ms 19:34:42.071 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "duration" => 1108, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", "id" => "JrfgeYskCZw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JrfgeYskCZw", "playlist_index" => 17, "timestamp" => 1765180354, "title" => "Patroncast S05E46 - Fixing my mess of an online ecosystem", "upload_date" => "20251208"} 19:34:42.072 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:42.072 [debug] QUERY OK source="sources" db=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:42.075 [debug] QUERY OK source="media_items" db=3.0ms idle=1003.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 07:52:34Z], 43] 19:34:42.076 [debug] QUERY OK source="media_items" db=0.6ms idle=1005.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "6e6292f1-a3c6-449d-b8a5-f6b79d4ce23b", "https://www.youtube.com/watch?v=JrfgeYskCZw", false, "JrfgeYskCZw", 43, [], 1108, false, 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, false, 97, ~U[2025-12-08 07:52:34Z], ~U[2026-01-01 01:34:42Z], ~U[2026-01-01 01:34:42Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "https://www.youtube.com/watch?v=JrfgeYskCZw", "JrfgeYskCZw", 43, 1108, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, ~U[2025-12-08 07:52:34Z]] 19:34:42.076 [debug] QUERY OK source="sources" db=0.1ms idle=149.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:42.077 [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] 19:34:42.077 [debug] QUERY OK source="media_items" db=0.1ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1721755] 19:34:42.077 [info] Kicking off download for media item #1721755 (JrfgeYskCZw) 19:34:42.078 [debug] Current batch of media processed. Will check again in 1000ms 19:34:43.079 [debug] Current batch of media processed. Will check again in 1000ms 19:34:44.081 [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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "duration" => 1495, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", "id" => "iKzJAgDopVI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iKzJAgDopVI", "playlist_index" => 18, "timestamp" => 1765019658, "title" => "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "upload_date" => "20251206"} 19:34:44.081 [debug] QUERY OK source="sources" db=0.2ms idle=734.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:34:44.082 [debug] QUERY OK source="sources" db=0.1ms idle=735.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:34:44.085 [debug] QUERY OK source="media_items" db=2.9ms idle=735.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-06 11:14:18Z], 43] 19:34:44.086 [debug] QUERY OK source="media_items" db=1.2ms idle=738.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "94ee2a9c-ea48-40ff-942f-7f453405ad99", "https://www.youtube.com/watch?v=iKzJAgDopVI", false, "iKzJAgDopVI", 43, [], 1495, false, 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-06 11:14:18Z], ~U[2026-01-01 01:34:44Z], ~U[2026-01-01 01:34:44Z], "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "https://www.youtube.com/watch?v=iKzJAgDopVI", "iKzJAgDopVI", 43, 1495, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, ~U[2025-12-06 11:14:18Z]] 19:34:44.087 [debug] QUERY OK source="sources" db=0.2ms idle=157.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:44.087 [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] 19:34:44.087 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1707538] 19:34:44.087 [debug] Current batch of media processed. Will check again in 1000ms 19:34:45.088 [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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "duration" => 553, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", "id" => "JISz0WG7Sos", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JISz0WG7Sos", "playlist_index" => 19, "timestamp" => 1764925354, "title" => "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "upload_date" => "20251205"} 19:34:45.089 [debug] QUERY OK source="sources" db=0.2ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:45.089 [debug] QUERY OK source="sources" db=0.1ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.093 [debug] QUERY OK source="media_items" db=3.4ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 09:02:34Z], 43] 19:34:45.094 [debug] QUERY OK source="media_items" db=0.8ms idle=1005.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "b63fe70e-d978-4ae9-bc06-65de381e29b7", "https://www.youtube.com/watch?v=JISz0WG7Sos", false, "JISz0WG7Sos", 43, [], 553, false, 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, false, 98, ~U[2025-12-05 09:02:34Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "https://www.youtube.com/watch?v=JISz0WG7Sos", "JISz0WG7Sos", 43, 553, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, ~U[2025-12-05 09:02:34Z]] 19:34:45.094 [debug] QUERY OK source="sources" db=0.1ms idle=162.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:34:45.094 [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] 19:34:45.095 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1698511] 19:34:45.095 [info] Kicking off download for media item #1698511 (JISz0WG7Sos) 19:34:45.096 [debug] Current batch of media processed. Will check again in 1000ms 19:34:45.316 [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/ba/89/ba89d8303c4a57eb2a814338ac6157a1a482c56c8e752cc17f7a8b6d17c2784d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ac/3a/ac3a21b0dd2e3de722fea0d5ad70f8583c1e62ef69716ed21ffe30efc291c390.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:34:45.317 [debug] Gracefully stopping file follower 19:34:45.317 [debug] QUERY OK source="sources" db=0.2ms idle=223.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 19:34:45.317 [debug] QUERY OK source="sources" db=0.0ms idle=223.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.320 [debug] QUERY OK source="media_items" db=2.9ms idle=222.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-27 10:15:51Z], 43] 19:34:45.322 [debug] QUERY OK source="media_items" db=0.9ms idle=225.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "663c6683-d912-42b9-a6c1-8570c57bdc2b", "https://www.youtube.com/watch?v=jlz6xAk85hY", false, "jlz6xAk85hY", 43, [], 1514, false, 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, false, 98, ~U[2025-12-27 10:15:51Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "https://www.youtube.com/watch?v=jlz6xAk85hY", "jlz6xAk85hY", 43, 1514, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, ~U[2025-12-27 10:15:51Z]] 19:34:45.322 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.325 [debug] QUERY OK source="media_items" db=2.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 10:41:18Z], 43] 19:34:45.326 [debug] QUERY OK source="media_items" db=0.8ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "7f3ee443-c22b-442d-accc-32014e1122c6", "https://www.youtube.com/watch?v=3s83kULBiJ0", false, "3s83kULBiJ0", 43, [], 1589, false, 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, false, 98, ~U[2025-12-23 10:41:18Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "https://www.youtube.com/watch?v=3s83kULBiJ0", "3s83kULBiJ0", 43, 1589, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, ~U[2025-12-23 10:41:18Z]] 19:34:45.327 [debug] QUERY OK source="sources" db=0.4ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.329 [debug] QUERY OK source="media_items" db=2.6ms 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-12-20 10:39:49Z], 43] 19:34:45.331 [debug] QUERY OK source="media_items" db=1.2ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "8429f354-ae89-476d-b895-3ee0080e3898", "https://www.youtube.com/watch?v=dIxcwRdS5n8", false, "dIxcwRdS5n8", 43, [], 1426, false, 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-20 10:39:49Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "https://www.youtube.com/watch?v=dIxcwRdS5n8", "dIxcwRdS5n8", 43, 1426, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, ~U[2025-12-20 10:39:49Z]] 19:34:45.332 [debug] QUERY OK source="sources" db=0.4ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.334 [debug] QUERY OK source="media_items" db=2.5ms 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-19 08:54:06Z], 43] 19:34:45.335 [debug] QUERY OK source="media_items" db=0.6ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "1f18eb0c-9036-4d69-b047-37a62ab8a7dd", "https://www.youtube.com/watch?v=WtNb425nJT4", false, "WtNb425nJT4", 43, [], 530, false, 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, false, 98, ~U[2025-12-19 08:54:06Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "https://www.youtube.com/watch?v=WtNb425nJT4", "WtNb425nJT4", 43, 530, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, ~U[2025-12-19 08:54:06Z]] 19:34:45.336 [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" = ?) [43] 19:34:45.338 [debug] QUERY OK source="media_items" db=2.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-12-18 08:39:30Z], 43] 19:34:45.341 [debug] QUERY OK source="media_items" db=2.4ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "72be5a7e-37dd-43f5-be42-adc42ee9a874", "https://www.youtube.com/watch?v=rGqKAmDdmXM", false, "rGqKAmDdmXM", 43, [], 523, false, 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, false, 98, ~U[2025-12-18 08:39:30Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "https://www.youtube.com/watch?v=rGqKAmDdmXM", "rGqKAmDdmXM", 43, 523, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, ~U[2025-12-18 08:39:30Z]] 19:34:45.342 [debug] QUERY OK source="sources" db=0.3ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.344 [debug] QUERY OK source="media_items" db=2.4ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-17 09:03:42Z], 43] 19:34:45.345 [debug] QUERY OK source="media_items" db=0.6ms idle=8.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "6f832469-caed-491d-afad-d21d2220d9e7", "https://www.youtube.com/watch?v=ukEIVoB7ycc", false, "ukEIVoB7ycc", 43, [], 634, false, 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, false, 98, ~U[2025-12-17 09:03:42Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "https://www.youtube.com/watch?v=ukEIVoB7ycc", "ukEIVoB7ycc", 43, 634, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, ~U[2025-12-17 09:03:42Z]] 19:34:45.346 [debug] QUERY OK source="sources" db=0.3ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.348 [debug] QUERY OK source="media_items" db=2.4ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 09:03:07Z], 43] 19:34:45.349 [debug] QUERY OK source="media_items" db=0.7ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "4daeb48a-212b-4a3d-a817-c596aa6f5edf", "https://www.youtube.com/watch?v=hR2qvY64i-s", false, "hR2qvY64i-s", 43, [], 590, false, 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, false, 98, ~U[2025-12-16 09:03:07Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "https://www.youtube.com/watch?v=hR2qvY64i-s", "hR2qvY64i-s", 43, 590, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, ~U[2025-12-16 09:03:07Z]] 19:34:45.350 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.352 [debug] QUERY OK source="media_items" db=2.4ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 10:11:27Z], 43] 19:34:45.353 [debug] QUERY OK source="media_items" db=0.5ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "da94de5f-f735-4d44-917a-9f327e4eeacb", "https://www.youtube.com/watch?v=koT46u0nB_E", false, "koT46u0nB_E", 43, [], 1284, false, 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, false, 97, ~U[2025-12-15 10:11:27Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "https://www.youtube.com/watch?v=koT46u0nB_E", "koT46u0nB_E", 43, 1284, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, ~U[2025-12-15 10:11:27Z]] 19:34:45.354 [debug] QUERY OK source="sources" db=0.2ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.356 [debug] QUERY OK source="media_items" db=2.4ms 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 09:28:14Z], 43] 19:34:45.357 [debug] QUERY OK source="media_items" db=0.5ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "42e88447-a07f-40a5-8969-c2bf4f271b8c", "https://www.youtube.com/watch?v=DkBgwsHQoDc", false, "DkBgwsHQoDc", 43, [], 462, false, 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, false, 97, ~U[2025-12-15 09:28:14Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "https://www.youtube.com/watch?v=DkBgwsHQoDc", "DkBgwsHQoDc", 43, 462, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, ~U[2025-12-15 09:28:14Z]] 19:34:45.357 [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" = ?) [43] 19:34:45.360 [debug] QUERY OK source="media_items" db=2.3ms 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-13 11:01:25Z], 43] 19:34:45.361 [debug] QUERY OK source="media_items" db=1.1ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "54f6882c-73c1-402a-8c30-18610dbbceaa", "https://www.youtube.com/watch?v=6gusWDr1Qw0", false, "6gusWDr1Qw0", 43, [], 1591, false, 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, false, 98, ~U[2025-12-13 11:01:25Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "https://www.youtube.com/watch?v=6gusWDr1Qw0", "6gusWDr1Qw0", 43, 1591, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, ~U[2025-12-13 11:01:25Z]] 19:34:45.362 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.364 [debug] QUERY OK source="media_items" db=2.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-12-12 09:33:32Z], 43] 19:34:45.365 [debug] QUERY OK source="media_items" db=0.6ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "c422d785-2f86-42b1-b031-aafbedb2433a", "https://www.youtube.com/watch?v=JWQbGDLlcyw", false, "JWQbGDLlcyw", 43, [], 651, false, 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, false, 98, ~U[2025-12-12 09:33:32Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "https://www.youtube.com/watch?v=JWQbGDLlcyw", "JWQbGDLlcyw", 43, 651, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, ~U[2025-12-12 09:33:32Z]] 19:34:45.366 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.368 [debug] QUERY OK source="media_items" db=2.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 15:23:47Z], 43] 19:34:45.369 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "0bdfd534-92d1-479a-99ee-14bcdef0c434", "https://www.youtube.com/watch?v=ob-Y77kuVwM", false, "ob-Y77kuVwM", 43, [], 1884, false, 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, false, 97, ~U[2025-12-11 15:23:47Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "https://www.youtube.com/watch?v=ob-Y77kuVwM", "ob-Y77kuVwM", 43, 1884, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, ~U[2025-12-11 15:23:47Z]] 19:34:45.370 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.372 [debug] QUERY OK source="media_items" db=2.4ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 10:30:34Z], 43] 19:34:45.373 [debug] QUERY OK source="media_items" db=0.7ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "9a5f0ec9-06d5-4b7c-96c7-87889c0b78ee", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", false, "AhM3Pxq_ycM", 43, [], 540, false, 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, false, 97, ~U[2025-12-11 10:30:34Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", "AhM3Pxq_ycM", 43, 540, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, ~U[2025-12-11 10:30:34Z]] 19:34:45.374 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.376 [debug] QUERY OK source="media_items" db=2.3ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 09:21:39Z], 43] 19:34:45.377 [debug] QUERY OK source="media_items" db=0.6ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "685827a8-1b87-4c44-ba40-d6c469272af7", "https://www.youtube.com/watch?v=9XUHYL7-XtE", false, "9XUHYL7-XtE", 43, [], 610, false, 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, false, 98, ~U[2025-12-10 09:21:39Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "https://www.youtube.com/watch?v=9XUHYL7-XtE", "9XUHYL7-XtE", 43, 610, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, ~U[2025-12-10 09:21:39Z]] 19:34:45.378 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.381 [debug] QUERY OK source="media_items" db=2.6ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 10:46:07Z], 43] 19:34:45.382 [debug] QUERY OK source="media_items" db=0.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "da8fc049-7688-488a-9da5-6fa46ecfe6a5", "https://www.youtube.com/watch?v=88ioofbr4BY", false, "88ioofbr4BY", 43, [], 717, false, 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, false, 98, ~U[2025-12-09 10:46:07Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "https://www.youtube.com/watch?v=88ioofbr4BY", "88ioofbr4BY", 43, 717, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, ~U[2025-12-09 10:46:07Z]] 19:34:45.382 [debug] QUERY OK source="sources" db=0.4ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.385 [debug] QUERY OK source="media_items" db=2.7ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 10:00:52Z], 43] 19:34:45.392 [debug] QUERY OK source="media_items" db=6.0ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "b0e856d5-02d7-4a66-8cd6-39e942b10a1e", "https://www.youtube.com/watch?v=-tKROWIsGRk", false, "-tKROWIsGRk", 43, [], 863, false, 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, false, 97, ~U[2025-12-08 10:00:52Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "https://www.youtube.com/watch?v=-tKROWIsGRk", "-tKROWIsGRk", 43, 863, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, ~U[2025-12-08 10:00:52Z]] 19:34:45.392 [debug] QUERY OK source="sources" db=0.4ms idle=11.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.395 [debug] QUERY OK source="media_items" db=2.7ms idle=10.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 07:52:34Z], 43] 19:34:45.396 [debug] QUERY OK source="media_items" db=0.5ms idle=13.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "1be0fb9e-f500-4f3e-a292-0f5f733e70db", "https://www.youtube.com/watch?v=JrfgeYskCZw", false, "JrfgeYskCZw", 43, [], 1108, false, 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, false, 97, ~U[2025-12-08 07:52:34Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "https://www.youtube.com/watch?v=JrfgeYskCZw", "JrfgeYskCZw", 43, 1108, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, ~U[2025-12-08 07:52:34Z]] 19:34:45.397 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.399 [debug] QUERY OK source="media_items" db=2.6ms 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-12-06 11:14:18Z], 43] 19:34:45.401 [debug] QUERY OK source="media_items" db=1.0ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "923b3a31-d9c9-49ec-b4fb-83e1be12646a", "https://www.youtube.com/watch?v=iKzJAgDopVI", false, "iKzJAgDopVI", 43, [], 1495, false, 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-06 11:14:18Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "https://www.youtube.com/watch?v=iKzJAgDopVI", "iKzJAgDopVI", 43, 1495, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, ~U[2025-12-06 11:14:18Z]] 19:34:45.401 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.404 [debug] QUERY OK source="media_items" db=2.3ms 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-12-05 09:02:34Z], 43] 19:34:45.405 [debug] QUERY OK source="media_items" db=0.6ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "ac10035b-1b86-449f-93d0-f81466f82dbc", "https://www.youtube.com/watch?v=JISz0WG7Sos", false, "JISz0WG7Sos", 43, [], 553, false, 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, false, 98, ~U[2025-12-05 09:02:34Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "https://www.youtube.com/watch?v=JISz0WG7Sos", "JISz0WG7Sos", 43, 553, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, ~U[2025-12-05 09:02:34Z]] 19:34:45.405 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 19:34:45.408 [debug] QUERY OK source="media_items" db=2.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 09:00:58Z], 43] 19:34:45.409 [debug] QUERY OK source="media_items" db=0.5ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Valve was behind FEX all along\n03:36 AlmaLinux wants to be the standard for Media production\n06:27 Fedora replaces the kernel console\n\nLinks:\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole", "Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console", "b90703e9-1003-4917-b76e-570d2620be01", "https://www.youtube.com/watch?v=sacZp_5J4HY", false, "sacZp_5J4HY", 43, [], 575, false, 20, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120400_Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console.NA", false, false, 98, ~U[2025-12-04 09:00:58Z], ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Valve was behind FEX all along\n03:36 AlmaLinux wants to be the standard for Media production\n06:27 Fedora replaces the kernel console\n\nLinks:\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole", "Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console", "https://www.youtube.com/watch?v=sacZp_5J4HY", "sacZp_5J4HY", 43, 575, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120400_Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console.NA", false, ~U[2025-12-04 09:00:58Z]] 19:34:45.409 [debug] QUERY OK source="sources" db=0.2ms idle=5.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z], 43] 19:34:45.412 [debug] QUERY OK source="media_items" db=3.0ms idle=4.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:34:45.472 [debug] QUERY OK source="media_items" db=3.1ms idle=1.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")))) [43] 19:34:45.473 [debug] QUERY OK source="media_items" db=0.2ms idle=4.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 19:34:45.474 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88145, 43, ~U[2026-01-01 01:34:45Z], ~U[2026-01-01 01:34:45Z]] 19:34:45.475 [info] {"args":{"id":43},"id":88130,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":27575046,"event":"job:stop","queue_time":385521,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:34:47.339 [info] {"source":"oban","duration":3638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:35:00.853 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:35:17.343 [info] {"source":"oban","duration":4168,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 19:35:20.991 [info] {"args":{"id":31},"id":87774,"meta":{},"system_time":1767231320991238796,"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"]} 19:35:20.991 [debug] QUERY OK source="sources" db=0.2ms idle=644.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:20.992 [debug] QUERY OK source="settings" db=0.3ms idle=645.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:35:20.992 [debug] QUERY OK source="media_items" db=0.2ms idle=645.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")))) [31] 19:35:20.992 [debug] QUERY OK source="media_items" db=0.0ms idle=7.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [31] 19:35:20.992 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:35:20.993 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:35:20.993 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:35:20.995 [debug] QUERY OK source="media_items" db=0.6ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [31] 19:35:20.996 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:35:20.996 [debug] Current batch of media processed. Will check again in 1000ms 19:35:20.996 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:35:20.996 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:35:20.997 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:35:20.997 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCh66aXZ_hqiT7au6Nwb8p3Q --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/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/20/3d/203dc1c381ed89d6d229e94c325518007fbfb97b35492c9063946b5502e79d0f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/10/5f/105f6cdba7ec6230cd0a584174f1c121b0e64ae4b77db4de75f13714a1def442.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:35:21.997 [debug] Current batch of media processed. Will check again in 1000ms 19:35:22.998 [debug] Current batch of media processed. Will check again in 1000ms 19:35:23.999 [debug] Current batch of media processed. Will check again in 1000ms 19:35:25.000 [debug] Current batch of media processed. Will check again in 1000ms 19:35:26.001 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "About eighteen months ago I asked everyone to help me figure out the best CPU for a media server. Your media server is only as good as the chip that powers it, so I wanted real data from real systems. Today I am excited to show you a brand new website that collects and displays all of your QuickSync benchmark results in one place. You can filter by CPU generation, username, or compare different chips side by side. It is an easy way to understand how Intel QuickSync performs across many workloads and generations.\n\nhttps://quicksync.ktz.me\n\nIn this video I walk you through how the site works, how to run the benchmark on your own system, and how to submit your results to the public database. The more results we collect, the more useful the data becomes for everyone building a media server. I also talk about future ideas such as adding NVIDIA and AMD hardware support and share a few updates from my life and upcoming projects.\n\n00:00 - Start\n05:46 - How to submit YOUR results\n14:21 - CPU Power Efficiency Matters\n16:43 - Channel Update\n17:37 - New podcast?", "duration" => 1219, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e120500_In-depth Intel QuickSync video transcoding performance testing for Media Servers.mp4", "id" => "NSpw-H2wwa0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NSpw-H2wwa0", "playlist_index" => 1, "timestamp" => 1764902821, "title" => "In-depth Intel QuickSync video transcoding performance testing for Media Servers", "upload_date" => "20251205"} 19:35:26.001 [debug] QUERY OK source="sources" db=0.1ms idle=1655.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:26.002 [debug] QUERY OK source="sources" db=0.1ms idle=1655.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:26.002 [debug] QUERY OK source="media_items" db=0.1ms idle=1655.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-05 02:47:01Z], 31] 19:35:26.003 [debug] QUERY OK source="media_items" db=0.7ms idle=1011.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["About eighteen months ago I asked everyone to help me figure out the best CPU for a media server. Your media server is only as good as the chip that powers it, so I wanted real data from real systems. Today I am excited to show you a brand new website that collects and displays all of your QuickSync benchmark results in one place. You can filter by CPU generation, username, or compare different chips side by side. It is an easy way to understand how Intel QuickSync performs across many workloads and generations.\n\nhttps://quicksync.ktz.me\n\nIn this video I walk you through how the site works, how to run the benchmark on your own system, and how to submit your results to the public database. The more results we collect, the more useful the data becomes for everyone building a media server. I also talk about future ideas such as adding NVIDIA and AMD hardware support and share a few updates from my life and upcoming projects.\n\n00:00 - Start\n05:46 - How to submit YOUR results\n14:21 - CPU Power Efficiency Matters\n16:43 - Channel Update\n17:37 - New podcast?", "In-depth Intel QuickSync video transcoding performance testing for Media Servers", "78b16375-cfe8-41ca-9f5b-683b47013399", "https://www.youtube.com/watch?v=NSpw-H2wwa0", false, "NSpw-H2wwa0", 31, [], 1219, false, 1, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e120500_In-depth Intel QuickSync video transcoding performance testing for Media Servers.mp4", false, false, 98, ~U[2025-12-05 02:47:01Z], ~U[2026-01-01 01:35:26Z], ~U[2026-01-01 01:35:26Z], "About eighteen months ago I asked everyone to help me figure out the best CPU for a media server. Your media server is only as good as the chip that powers it, so I wanted real data from real systems. Today I am excited to show you a brand new website that collects and displays all of your QuickSync benchmark results in one place. You can filter by CPU generation, username, or compare different chips side by side. It is an easy way to understand how Intel QuickSync performs across many workloads and generations.\n\nhttps://quicksync.ktz.me\n\nIn this video I walk you through how the site works, how to run the benchmark on your own system, and how to submit your results to the public database. The more results we collect, the more useful the data becomes for everyone building a media server. I also talk about future ideas such as adding NVIDIA and AMD hardware support and share a few updates from my life and upcoming projects.\n\n00:00 - Start\n05:46 - How to submit YOUR results\n14:21 - CPU Power Efficiency Matters\n16:43 - Channel Update\n17:37 - New podcast?", "In-depth Intel QuickSync video transcoding performance testing for Media Servers", "https://www.youtube.com/watch?v=NSpw-H2wwa0", "NSpw-H2wwa0", 31, 1219, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e120500_In-depth Intel QuickSync video transcoding performance testing for Media Servers.mp4", false, ~U[2025-12-05 02:47:01Z]] 19:35:26.004 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:26.004 [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] 19:35:26.004 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1703923] 19:35:26.004 [debug] Current batch of media processed. Will check again in 1000ms 19:35:27.005 [debug] Current batch of media processed. Will check again in 1000ms 19:35:28.006 [debug] Current batch of media processed. Will check again in 1000ms 19:35:29.008 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this week’s self-hosting and open-source news roundup, Alex from KTZ Systems covers the biggest headlines affecting homelabbers, tinkerers, and tech enthusiasts alike. \n\nFrom the groundbreaking ZFS AnyRaid announcement by HexOS, to Mozilla shuttering Pocket and the rise of self-hosted read-it-later apps like Wallabag and Shiori, there’s plenty to digest. We also touch on Home Assistant’s major deprecations, MinIO’s controversial change, Ubuntu embracing Rust, a cool ThinkNAS build on Reddit, and fresh NAS hardware unveiled at Computex. \n\nOh, and Plex is selling your data now? \n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---\nChapters:\n\n00:00 - Start\n00:27 - ZFS AnyRaid - HexOS\n03:05 - Mozilla shutters Pocket\n05:08 - Alt 1 - Wallabag\n05:33 - Alt 2 - Shiori\n06:08 - Alt 3 - Linkace\n06:37 - Alt 4 - Karakeep\n07:29 - Plex now wants to SELL my data?\n08:46 - PocketID v1.0\n09:10 - MinIO Enshittifies\n11:03 - Ubuntu is going rusty\n11:35 - Home Assistant deprecates things\n12:37 - Computex wrap-up\n14:19 - ThinkNAS\n14:57 - PSA for Ghost CMS users\n\n\n---\n\nLinks & Sources:- ZFS AnyRaid Announcement\nHexOS Blog – https://hexos.com/blog/introducing-zfs-anyraid-sponsored-by-eshtek\n\n- ZFS Architecture Background\nOpenZFS Docs – https://openzfs.github.io/openzfs-docs\n\n- TrueNAS & ZFS Context\nTrueNAS Docs – https://www.truenas.com/docs\n\n- ZFS Dev Leadership Call (May 2025)\nYouTube – https://www.youtube.com/watch?v=MifloJFCpLU\n\n- Mozilla Shutters Pocket\nMozilla Blog – https://blog.mozilla.org/en/mozilla/sunsetting-pocket\n\n- Wallabag\nProject Page – https://wallabag.org\n\n- Shiori\nGitHub Repo – https://github.com/go-shiori/shiori\n\n- LinkAce\nProject Site – https://www.linkace.org\n\n- Karakeep (formerly Hoarder)\nWebsite – https://karakeep.com\n\n- Plex Privacy Update Discussion\nReddit Thread – https://www.reddit.com/r/selfhosted/s/wzjFRg0mCP\n\n- PocketID v1.0 Release\nGitHub – https://github.com/pocket-id/pocket-id/releases/tag/v1.0.0\n\n- PocketID Demo\nTailscale YouTube – https://www.youtube.com/@Tailscale\n\n- MinIO PR #3509 (Code Removal)\nGitHub – https://github.com/minio/minio/pull/3509\n\n- Garage (S3-compatible alternative)\nProject Site – https://garagehq.deuxfleurs.fr\n\n- OpenMaxIO (community fork)\nGitHub – https://github.com/OpenMaxIO/openmaxio-object-browser\n\n- Ubuntu Adopts sudo-rs\nBlog by Jon Seager – https://jnsgr.uk/2025/05/adopting-sudo-rs-by-default-in-ubuntu\n\n- Home Assistant Deprecation Announcement\nHome Assistant Blog – https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/\n\n- MinisForum N5 Pro NAS at Computex\nTechPowerUp Coverage – https://www.techpowerup.com/337240/minisforum-shows-off-upcoming-amd-powered-nas-at-computex-2025\n\n- LincStation S1/N2 NAS Devices (with Unraid)\nNASCompares Coverage – https://nascompares.com/news/unraid-os-nas-devices-lincstation-s1-n2-revealed-at-computex-2025/\n\n- Robbie at NASCompares\nYouTube – https://www.youtube.com/@nascompares\n\n- ThinkNAS 4-Bay Project (Reddit)\nReddit – https://www.reddit.com/r/homelab/comments/1kifb06/thinknas_4bay_version_is_available_now/\n\n- Ghost CMS Login Bug\nGitHub Issue – https://github.com/TryGhost/Ghost/issues/23050\n\n- Self-Hosted Podcast Episode 150 (Final)\nPodcast – https://selfhosted.show/150 (airs on Friday 30th)\n\n- Alex's Blog Post on Ending the Podcast\nBlog - https://blog.ktz.me/self-hosted-150-fin/", "duration" => 959, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e052700_Mozilla shutters Pocket, ZFS is getting mismatched drive support and more | Tech News May 27th.mp4", "id" => "YSXXlMrHfOE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YSXXlMrHfOE", "playlist_index" => 2, "timestamp" => 1748388671, "title" => "Mozilla shutters Pocket, ZFS is getting mismatched drive support and more | Tech News May 27th", "upload_date" => "20250527"} 19:35:29.008 [debug] QUERY OK source="sources" db=0.1ms idle=1661.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:29.009 [debug] QUERY OK source="sources" db=0.1ms idle=1662.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:29.009 [debug] QUERY OK source="media_items" db=0.1ms idle=1662.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-27 23:31:11Z], 31] 19:35:29.013 [debug] QUERY OK source="media_items" db=3.6ms idle=1013.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this week’s self-hosting and open-source news roundup, Alex from KTZ Systems covers the biggest headlines affecting homelabbers, tinkerers, and tech enthusiasts alike. \n\nFrom the groundbreaking ZFS AnyRaid announcement by HexOS, to Mozilla shuttering Pocket and the rise of self-hosted read-it-later apps like Wallabag and Shiori, there’s plenty to digest. We also touch on Home Assistant’s major deprecations, MinIO’s controversial change, Ubuntu embracing Rust, a cool ThinkNAS build on Reddit, and fresh NAS hardware unveiled at Computex. \n\nOh, and Plex is selling your data now? \n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---\nChapters:\n\n00:00 - Start\n00:27 - ZFS AnyRaid - HexOS\n03:05 - Mozilla shutters Pocket\n05:08 - Alt 1 - Wallabag\n05:33 - Alt 2 - Shiori\n06:08 - Alt 3 - Linkace\n06:37 - Alt 4 - Karakeep\n07:29 - Plex now wants to SELL my data?\n08:46 - PocketID v1.0\n09:10 - MinIO Enshittifies\n11:03 - Ubuntu is going rusty\n11:35 - Home Assistant deprecates things\n12:37 - Computex wrap-up\n14:19 - ThinkNAS\n14:57 - PSA for Ghost CMS users\n\n\n---\n\nLinks & Sources:- ZFS AnyRaid Announcement\nHexOS Blog – https://hexos.com/blog/introducing-zfs-anyraid-sponsored-by-eshtek\n\n- ZFS Architecture Background\nOpenZFS Docs – https://openzfs.github.io/openzfs-docs\n\n- TrueNAS & ZFS Context\nTrueNAS Docs – https://www.truenas.com/docs\n\n- ZFS Dev Leadership Call (May 2025)\nYouTube – https://www.youtube.com/watch?v=MifloJFCpLU\n\n- Mozilla Shutters Pocket\nMozilla Blog – https://blog.mozilla.org/en/mozilla/sunsetting-pocket\n\n- Wallabag\nProject Page – https://wallabag.org\n\n- Shiori\nGitHub Repo – https://github.com/go-shiori/shiori\n\n- LinkAce\nProject Site – https://www.linkace.org\n\n- Karakeep (formerly Hoarder)\nWebsite – https://karakeep.com\n\n- Plex Privacy Update Discussion\nReddit Thread – https://www.reddit.com/r/selfhosted/s/wzjFRg0mCP\n\n- PocketID v1.0 Release\nGitHub – https://github.com/pocket-id/pocket-id/releases/tag/v1.0.0\n\n- PocketID Demo\nTailscale YouTube – https://www.youtube.com/@Tailscale\n\n- MinIO PR #3509 (Code Removal)\nGitHub – https://github.com/minio/minio/pull/3509\n\n- Garage (S3-compatible alternative)\nProject Site – https://garagehq.deuxfleurs.fr\n\n- OpenMaxIO (community fork)\nGitHub – https://github.com/OpenMaxIO/openmaxio-object-browser\n\n- Ubuntu Adopts sudo-rs\nBlog by Jon Seager – https://jnsgr.uk/2025/05/adopting-sudo-rs-by-default-in-ubuntu\n\n- Home Assistant Deprecation Announcement\nHome Assistant Blog – https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/\n\n- MinisForum N5 Pro NAS at Computex\nTechPowerUp Coverage – https://www.techpowerup.com/337240/minisforum-shows-off-upcoming-amd-powered-nas-at-computex-2025\n\n- LincStation S1/N2 NAS Devices (with Unraid)\nNASCompares Coverage – https://nascompares.com/news/unraid-os-nas-devices-lincstation-s1-n2-revealed-at-computex-2025/\n\n- Robbie at NASCompares\nYouTube – https://www.youtube.com/@nascompares\n\n- ThinkNAS 4-Bay Project (Reddit)\nReddit – https://www.reddit.com/r/homelab/comments/1kifb06/thinknas_4bay_version_is_available_now/\n\n- Ghost CMS Login Bug\nGitHub Issue – https://github.com/TryGhost/Ghost/issues/23050\n\n- Self-Hosted Podcast Episode 150 (Final)\nPodcast – https://selfhosted.show/150 (airs on Friday 30th)\n\n- Alex's Blog Post on Ending the Podcast\nBlog - https://blog.ktz.me/self-hosted-150-fin/", "Mozilla shutters Pocket, ZFS is getting mismatched drive support and more | Tech News May 27th", "cbfab1c5-d5e4-4243-b13f-bf51a9bf4e5b", "https://www.youtube.com/watch?v=YSXXlMrHfOE", false, "YSXXlMrHfOE", 31, [], 959, false, 2, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e052700_Mozilla shutters Pocket, ZFS is getting mismatched drive support and more | Tech News May 27th.mp4", false, false, 98, ~U[2025-05-27 23:31:11Z], ~U[2026-01-01 01:35:29Z], ~U[2026-01-01 01:35:29Z], "In this week’s self-hosting and open-source news roundup, Alex from KTZ Systems covers the biggest headlines affecting homelabbers, tinkerers, and tech enthusiasts alike. \n\nFrom the groundbreaking ZFS AnyRaid announcement by HexOS, to Mozilla shuttering Pocket and the rise of self-hosted read-it-later apps like Wallabag and Shiori, there’s plenty to digest. We also touch on Home Assistant’s major deprecations, MinIO’s controversial change, Ubuntu embracing Rust, a cool ThinkNAS build on Reddit, and fresh NAS hardware unveiled at Computex. \n\nOh, and Plex is selling your data now? \n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---\nChapters:\n\n00:00 - Start\n00:27 - ZFS AnyRaid - HexOS\n03:05 - Mozilla shutters Pocket\n05:08 - Alt 1 - Wallabag\n05:33 - Alt 2 - Shiori\n06:08 - Alt 3 - Linkace\n06:37 - Alt 4 - Karakeep\n07:29 - Plex now wants to SELL my data?\n08:46 - PocketID v1.0\n09:10 - MinIO Enshittifies\n11:03 - Ubuntu is going rusty\n11:35 - Home Assistant deprecates things\n12:37 - Computex wrap-up\n14:19 - ThinkNAS\n14:57 - PSA for Ghost CMS users\n\n\n---\n\nLinks & Sources:- ZFS AnyRaid Announcement\nHexOS Blog – https://hexos.com/blog/introducing-zfs-anyraid-sponsored-by-eshtek\n\n- ZFS Architecture Background\nOpenZFS Docs – https://openzfs.github.io/openzfs-docs\n\n- TrueNAS & ZFS Context\nTrueNAS Docs – https://www.truenas.com/docs\n\n- ZFS Dev Leadership Call (May 2025)\nYouTube – https://www.youtube.com/watch?v=MifloJFCpLU\n\n- Mozilla Shutters Pocket\nMozilla Blog – https://blog.mozilla.org/en/mozilla/sunsetting-pocket\n\n- Wallabag\nProject Page – https://wallabag.org\n\n- Shiori\nGitHub Repo – https://github.com/go-shiori/shiori\n\n- LinkAce\nProject Site – https://www.linkace.org\n\n- Karakeep (formerly Hoarder)\nWebsite – https://karakeep.com\n\n- Plex Privacy Update Discussion\nReddit Thread – https://www.reddit.com/r/selfhosted/s/wzjFRg0mCP\n\n- PocketID v1.0 Release\nGitHub – https://github.com/pocket-id/pocket-id/releases/tag/v1.0.0\n\n- PocketID Demo\nTailscale YouTube – https://www.youtube.com/@Tailscale\n\n- MinIO PR #3509 (Code Removal)\nGitHub – https://github.com/minio/minio/pull/3509\n\n- Garage (S3-compatible alternative)\nProject Site – https://garagehq.deuxfleurs.fr\n\n- OpenMaxIO (community fork)\nGitHub – https://github.com/OpenMaxIO/openmaxio-object-browser\n\n- Ubuntu Adopts sudo-rs\nBlog by Jon Seager – https://jnsgr.uk/2025/05/adopting-sudo-rs-by-default-in-ubuntu\n\n- Home Assistant Deprecation Announcement\nHome Assistant Blog – https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/\n\n- MinisForum N5 Pro NAS at Computex\nTechPowerUp Coverage – https://www.techpowerup.com/337240/minisforum-shows-off-upcoming-amd-powered-nas-at-computex-2025\n\n- LincStation S1/N2 NAS Devices (with Unraid)\nNASCompares Coverage – https://nascompares.com/news/unraid-os-nas-devices (truncated) 19:35:29.013 [debug] QUERY OK source="sources" db=0.1ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:29.014 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:35:29.014 [debug] QUERY OK source="media_items" db=0.1ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [504649] 19:35:29.014 [debug] Current batch of media processed. Will check again in 1000ms 19:35:30.015 [debug] Current batch of media processed. Will check again in 1000ms 19:35:31.017 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 2 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\n\n\n---------------------\n\nLinks:\n\n- https://perfectmediaserver.com/01-overview/alexs-example-builds/\n- https://old.reddit.com/r/minilab/\n- https://blog.ktz.me/use-1-pikvm-instance-to-control-4-systems/\n- https://www.youtube.com/@UCFyP17HoU-vpxhIpGXnXx2g \n- https://perfectmediaserver.com/06-hardware/cases/\n- https://blog.ktz.me/the-best-media-server-cpu-in-the-world/\n- https://github.com/ironicbadger/quicksync_calc (thanks to cpt-morgan)\n- https://notes.jupiterbroadcasting.com/self-hosted/2024/episode-123/\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:07 - How much system do you really need?\n05:18 - CPU selection\n10:45 - Intel T-Series CPUs\n12:20 - Motherboards\n14:02 - Memory\n17:38 - Power Supplies\n19:43 - Cases\n22:22 - IP KVMs\n25:14 - On the bench\n26:28 - Conclusion Time", "duration" => 1743, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e050600_Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection.mp4", "id" => "Lga0RcHnaMY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Lga0RcHnaMY", "playlist_index" => 3, "timestamp" => 1746490617, "title" => "Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection", "upload_date" => "20250506"} 19:35:31.017 [debug] QUERY OK source="sources" db=0.2ms idle=670.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:31.018 [debug] QUERY OK source="sources" db=0.0ms idle=671.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:31.018 [debug] QUERY OK source="media_items" db=0.1ms idle=671.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-06 00:16:57Z], 31] 19:35:31.020 [debug] QUERY OK source="media_items" db=1.6ms idle=671.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 2 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\n\n\n---------------------\n\nLinks:\n\n- https://perfectmediaserver.com/01-overview/alexs-example-builds/\n- https://old.reddit.com/r/minilab/\n- https://blog.ktz.me/use-1-pikvm-instance-to-control-4-systems/\n- https://www.youtube.com/@UCFyP17HoU-vpxhIpGXnXx2g \n- https://perfectmediaserver.com/06-hardware/cases/\n- https://blog.ktz.me/the-best-media-server-cpu-in-the-world/\n- https://github.com/ironicbadger/quicksync_calc (thanks to cpt-morgan)\n- https://notes.jupiterbroadcasting.com/self-hosted/2024/episode-123/\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:07 - How much system do you really need?\n05:18 - CPU selection\n10:45 - Intel T-Series CPUs\n12:20 - Motherboards\n14:02 - Memory\n17:38 - Power Supplies\n19:43 - Cases\n22:22 - IP KVMs\n25:14 - On the bench\n26:28 - Conclusion Time", "Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection", "b7327529-4e05-4bbd-bad3-a6d3b0020a3d", "https://www.youtube.com/watch?v=Lga0RcHnaMY", false, "Lga0RcHnaMY", 31, [], 1743, false, 3, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e050600_Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection.mp4", false, false, 98, ~U[2025-05-06 00:16:57Z], ~U[2026-01-01 01:35:31Z], ~U[2026-01-01 01:35:31Z], "If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 2 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\n\n\n---------------------\n\nLinks:\n\n- https://perfectmediaserver.com/01-overview/alexs-example-builds/\n- https://old.reddit.com/r/minilab/\n- https://blog.ktz.me/use-1-pikvm-instance-to-control-4-systems/\n- https://www.youtube.com/@UCFyP17HoU-vpxhIpGXnXx2g \n- https://perfectmediaserver.com/06-hardware/cases/\n- https://blog.ktz.me/the-best-media-server-cpu-in-the-world/\n- https://github.com/ironicbadger/quicksync_calc (thanks to cpt-morgan)\n- https://notes.jupiterbroadcasting.com/self-hosted/2024/episode-123/\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:07 - How much system do you really need?\n05:18 - CPU selection\n10:45 - Intel T-Series CPUs\n12:20 - Motherboards\n14:02 - Memory\n17:38 - Power Supplies\n19:43 - Cases\n22:22 - IP KVMs\n25:14 - On the bench\n26:28 - Conclusion Time", "Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection", "https://www.youtube.com/watch?v=Lga0RcHnaMY", "Lga0RcHnaMY", 31, 1743, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e050600_Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection.mp4", false, ~U[2025-05-06 00:16:57Z]] 19:35:31.020 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [31] 19:35:31.021 [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] 19:35:31.021 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [409817] 19:35:31.021 [debug] Current batch of media processed. Will check again in 1000ms 19:35:32.022 [debug] Current batch of media processed. Will check again in 1000ms 19:35:33.024 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 1 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\nPlaylist to follow once parts 2-3-4 are finished and ready.\n\n---------------------\n\nLinks:\n\n- James Bottomley Fosdem 2016 - https://archive.fosdem.org/2016/schedule/event/namespaces_and_cgroups\n+ KTZ Systems - Ansible and docker secret management - https://www.youtube.com/watch?v=CUh8FDLbj8M\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:18 - Requirements gathering\n04:13 - Introducing the tools\n05:59 - mergerfs\n11:51 - snapRAID\n19:28 - docker", "duration" => 1413, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e042300_How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker..mp4", "id" => "Yt67zz9p0FU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Yt67zz9p0FU", "playlist_index" => 4, "timestamp" => 1745376582, "title" => "How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker.", "upload_date" => "20250423"} 19:35:33.024 [debug] QUERY OK source="sources" db=0.2ms idle=678.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:33.025 [debug] QUERY OK source="sources" db=0.1ms idle=678.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:33.025 [debug] QUERY OK source="media_items" db=0.2ms idle=678.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-23 02:49:42Z], 31] 19:35:33.043 [debug] QUERY OK source="media_items" db=16.8ms idle=679.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 1 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\nPlaylist to follow once parts 2-3-4 are finished and ready.\n\n---------------------\n\nLinks:\n\n- James Bottomley Fosdem 2016 - https://archive.fosdem.org/2016/schedule/event/namespaces_and_cgroups\n+ KTZ Systems - Ansible and docker secret management - https://www.youtube.com/watch?v=CUh8FDLbj8M\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:18 - Requirements gathering\n04:13 - Introducing the tools\n05:59 - mergerfs\n11:51 - snapRAID\n19:28 - docker", "How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker.", "49738b91-8704-48cb-980e-78c9accc2de5", "https://www.youtube.com/watch?v=Yt67zz9p0FU", false, "Yt67zz9p0FU", 31, [], 1413, false, 4, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e042300_How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker..mp4", false, false, 98, ~U[2025-04-23 02:49:42Z], ~U[2026-01-01 01:35:33Z], ~U[2026-01-01 01:35:33Z], "If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 1 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\nPlaylist to follow once parts 2-3-4 are finished and ready.\n\n---------------------\n\nLinks:\n\n- James Bottomley Fosdem 2016 - https://archive.fosdem.org/2016/schedule/event/namespaces_and_cgroups\n+ KTZ Systems - Ansible and docker secret management - https://www.youtube.com/watch?v=CUh8FDLbj8M\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:18 - Requirements gathering\n04:13 - Introducing the tools\n05:59 - mergerfs\n11:51 - snapRAID\n19:28 - docker", "How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker.", "https://www.youtube.com/watch?v=Yt67zz9p0FU", "Yt67zz9p0FU", 31, 1413, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e042300_How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker..mp4", false, ~U[2025-04-23 02:49:42Z]] 19:35:33.043 [debug] QUERY OK source="sources" db=0.3ms idle=41.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:33.044 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 19:35:33.044 [debug] QUERY OK source="media_items" db=0.2ms idle=18.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 [365503] 19:35:33.044 [debug] Current batch of media processed. Will check again in 1000ms 19:35:34.045 [debug] Current batch of media processed. Will check again in 1000ms 19:35:35.046 [debug] Current batch of media processed. Will check again in 1000ms 19:35:36.048 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "nix-darwin brings the nix package manager to macOS. In todays video I discuss the pros and cons of this approach, and take you through setting up a box fresh Mac in about 30 mins. \n\nMy config:\n- https://github.com/ironicbadger/nix-config\n\n\nPeople who actually know what they are doings configs:\n- https://github.com/wimpysworld/nix-config\n- https://github.com/shayne/nixos-config\n- https://github.com/mitchellh/nixos-config\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n————————————-\n\nChapters:\n\n00:00:00 Introduction\n00:02:06 Overview of Nix ecosystem (package manager, OS, language)\n00:13:34 Flake inputs dependencies\n00:20:19 Explaining mkDarwin helper function\n00:23:40 Installation and build process\n00:30:52 Mac App Store applications + Homebrew\n00:35:30 Switching to the built derivation\n\n------------------------", "duration" => 2411, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e041200_Use nix on macOS to declare victory over your configs.mp4", "id" => "qUmZtC6ts0M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qUmZtC6ts0M", "playlist_index" => 5, "timestamp" => 1744469454, "title" => "Use nix on macOS to declare victory over your configs", "upload_date" => "20250412"} 19:35:36.048 [debug] QUERY OK source="sources" db=0.1ms idle=1701.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:36.048 [debug] QUERY OK source="sources" db=0.1ms idle=1702.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:36.049 [debug] QUERY OK source="media_items" db=0.1ms idle=1702.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-12 14:50:54Z], 31] 19:35:36.054 [debug] QUERY OK source="media_items" db=4.8ms idle=1045.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["nix-darwin brings the nix package manager to macOS. In todays video I discuss the pros and cons of this approach, and take you through setting up a box fresh Mac in about 30 mins. \n\nMy config:\n- https://github.com/ironicbadger/nix-config\n\n\nPeople who actually know what they are doings configs:\n- https://github.com/wimpysworld/nix-config\n- https://github.com/shayne/nixos-config\n- https://github.com/mitchellh/nixos-config\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n————————————-\n\nChapters:\n\n00:00:00 Introduction\n00:02:06 Overview of Nix ecosystem (package manager, OS, language)\n00:13:34 Flake inputs dependencies\n00:20:19 Explaining mkDarwin helper function\n00:23:40 Installation and build process\n00:30:52 Mac App Store applications + Homebrew\n00:35:30 Switching to the built derivation\n\n------------------------", "Use nix on macOS to declare victory over your configs", "3a37ac3d-9df2-41d9-a827-a52c86b2ea33", "https://www.youtube.com/watch?v=qUmZtC6ts0M", false, "qUmZtC6ts0M", 31, [], 2411, false, 5, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e041200_Use nix on macOS to declare victory over your configs.mp4", false, false, 98, ~U[2025-04-12 14:50:54Z], ~U[2026-01-01 01:35:36Z], ~U[2026-01-01 01:35:36Z], "nix-darwin brings the nix package manager to macOS. In todays video I discuss the pros and cons of this approach, and take you through setting up a box fresh Mac in about 30 mins. \n\nMy config:\n- https://github.com/ironicbadger/nix-config\n\n\nPeople who actually know what they are doings configs:\n- https://github.com/wimpysworld/nix-config\n- https://github.com/shayne/nixos-config\n- https://github.com/mitchellh/nixos-config\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n————————————-\n\nChapters:\n\n00:00:00 Introduction\n00:02:06 Overview of Nix ecosystem (package manager, OS, language)\n00:13:34 Flake inputs dependencies\n00:20:19 Explaining mkDarwin helper function\n00:23:40 Installation and build process\n00:30:52 Mac App Store applications + Homebrew\n00:35:30 Switching to the built derivation\n\n------------------------", "Use nix on macOS to declare victory over your configs", "https://www.youtube.com/watch?v=qUmZtC6ts0M", "qUmZtC6ts0M", 31, 2411, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e041200_Use nix on macOS to declare victory over your configs.mp4", false, ~U[2025-04-12 14:50:54Z]] 19:35:36.054 [debug] QUERY OK source="sources" db=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" = ?) [31] 19:35:36.054 [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] 19:35:36.055 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365504] 19:35:36.055 [debug] Current batch of media processed. Will check again in 1000ms 19:35:37.056 [debug] Current batch of media processed. Will check again in 1000ms 19:35:38.057 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Put two NVME SSDs into one 8x PCIe slot on *any* motherboard using the RIITOP Dual NVMe M.2 NVMe SSD to PCI-e 3.1 x8/x16 Card.\n\nNo need for expensive server grade motherboards to use a single 8x slot as two 4x slots!\n\n- https://amzn.to/4ljiYiZ\n- https://www.riitop.com/collections/msata-ssd-adapter/products/dual-nvme-pcie-adapter-riitop-m-2-nvme-ssd-to-pci-e-3-1-x8-x16-card-support-m-2-m-key-nvme-ssd-22110-2280-2260-2242-2230\n- https://serverbuilds.net\n\n------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 546, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e040500_Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter.mp4", "id" => "PuQgkkytnps", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PuQgkkytnps", "playlist_index" => 6, "timestamp" => 1743851745, "title" => "Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter", "upload_date" => "20250405"} 19:35:38.057 [debug] QUERY OK source="sources" db=0.1ms idle=711.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:38.058 [debug] QUERY OK source="sources" db=0.1ms idle=711.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:38.058 [debug] QUERY OK source="media_items" db=0.1ms idle=711.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-05 11:15:45Z], 31] 19:35:38.059 [debug] QUERY OK source="media_items" db=0.6ms idle=712.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Put two NVME SSDs into one 8x PCIe slot on *any* motherboard using the RIITOP Dual NVMe M.2 NVMe SSD to PCI-e 3.1 x8/x16 Card.\n\nNo need for expensive server grade motherboards to use a single 8x slot as two 4x slots!\n\n- https://amzn.to/4ljiYiZ\n- https://www.riitop.com/collections/msata-ssd-adapter/products/dual-nvme-pcie-adapter-riitop-m-2-nvme-ssd-to-pci-e-3-1-x8-x16-card-support-m-2-m-key-nvme-ssd-22110-2280-2260-2242-2230\n- https://serverbuilds.net\n\n------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter", "4a1951f7-92e3-4538-a6cb-7ed94380b799", "https://www.youtube.com/watch?v=PuQgkkytnps", false, "PuQgkkytnps", 31, [], 546, false, 6, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e040500_Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter.mp4", false, false, 98, ~U[2025-04-05 11:15:45Z], ~U[2026-01-01 01:35:38Z], ~U[2026-01-01 01:35:38Z], "Put two NVME SSDs into one 8x PCIe slot on *any* motherboard using the RIITOP Dual NVMe M.2 NVMe SSD to PCI-e 3.1 x8/x16 Card.\n\nNo need for expensive server grade motherboards to use a single 8x slot as two 4x slots!\n\n- https://amzn.to/4ljiYiZ\n- https://www.riitop.com/collections/msata-ssd-adapter/products/dual-nvme-pcie-adapter-riitop-m-2-nvme-ssd-to-pci-e-3-1-x8-x16-card-support-m-2-m-key-nvme-ssd-22110-2280-2260-2242-2230\n- https://serverbuilds.net\n\n------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter", "https://www.youtube.com/watch?v=PuQgkkytnps", "PuQgkkytnps", 31, 546, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e040500_Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter.mp4", false, ~U[2025-04-05 11:15:45Z]] 19:35:38.059 [debug] QUERY OK source="sources" db=0.1ms idle=52.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:38.059 [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] 19:35:38.060 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365505] 19:35:38.060 [debug] Current batch of media processed. Will check again in 1000ms 19:35:39.060 [debug] Current batch of media processed. Will check again in 1000ms 19:35:40.061 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Building a server with a consumer-grade AM5 chip? I've been saying it couldn't be done, but here we are doing exactly that. After weeks of wrestling with my venerable Epyc 7402 server that died and some disappointing experiments with Threadripper Pro, I'm taking the plunge with the Ryzen 9950X paired with ASUS ProArt X870E.\n\nThe real challenge? Making do with just 40 PCIe lanes versus the 128 I'm used to. It's a tight squeeze configuring the bifurcation so everything plays nicely - my Intel data center SSDs, the A4000 GPU, and various other bits. Through careful experimentation and lots of BIOS tinkering, I've managed to create a setup that handles almost everything my old Epyc box did, at half the price.\n\nPower draw sits at around 80W idle and peaks at 400W under load - surprisingly reasonable for the sheer computing power on tap. If you're interested in maxing out consumer hardware for server applications, this might just be the sweet spot. Full Proxmox configuration details coming in future videos.\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n===\n\n00:00 - Consumer hardware for a server?!\n05:56 - What is a PCIe Lane?\n08:13 - Asus ProArt X870-E Overview\n15:49 - Power Usage", "duration" => 1037, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032900_Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E.mp4", "id" => "isqWT0rvwmc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=isqWT0rvwmc", "playlist_index" => 7, "timestamp" => 1743249656, "title" => "Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E", "upload_date" => "20250329"} 19:35:40.062 [debug] QUERY OK source="sources" db=0.1ms idle=715.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:40.062 [debug] QUERY OK source="sources" db=0.1ms idle=715.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:40.062 [debug] QUERY OK source="media_items" db=0.1ms idle=715.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-29 12:00:56Z], 31] 19:35:40.064 [debug] QUERY OK source="media_items" db=2.0ms idle=716.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Building a server with a consumer-grade AM5 chip? I've been saying it couldn't be done, but here we are doing exactly that. After weeks of wrestling with my venerable Epyc 7402 server that died and some disappointing experiments with Threadripper Pro, I'm taking the plunge with the Ryzen 9950X paired with ASUS ProArt X870E.\n\nThe real challenge? Making do with just 40 PCIe lanes versus the 128 I'm used to. It's a tight squeeze configuring the bifurcation so everything plays nicely - my Intel data center SSDs, the A4000 GPU, and various other bits. Through careful experimentation and lots of BIOS tinkering, I've managed to create a setup that handles almost everything my old Epyc box did, at half the price.\n\nPower draw sits at around 80W idle and peaks at 400W under load - surprisingly reasonable for the sheer computing power on tap. If you're interested in maxing out consumer hardware for server applications, this might just be the sweet spot. Full Proxmox configuration details coming in future videos.\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n===\n\n00:00 - Consumer hardware for a server?!\n05:56 - What is a PCIe Lane?\n08:13 - Asus ProArt X870-E Overview\n15:49 - Power Usage", "Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E", "4a500c77-b11b-4a85-afd1-b71a422762c2", "https://www.youtube.com/watch?v=isqWT0rvwmc", false, "isqWT0rvwmc", 31, [], 1037, false, 7, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032900_Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E.mp4", false, false, 98, ~U[2025-03-29 12:00:56Z], ~U[2026-01-01 01:35:40Z], ~U[2026-01-01 01:35:40Z], "Building a server with a consumer-grade AM5 chip? I've been saying it couldn't be done, but here we are doing exactly that. After weeks of wrestling with my venerable Epyc 7402 server that died and some disappointing experiments with Threadripper Pro, I'm taking the plunge with the Ryzen 9950X paired with ASUS ProArt X870E.\n\nThe real challenge? Making do with just 40 PCIe lanes versus the 128 I'm used to. It's a tight squeeze configuring the bifurcation so everything plays nicely - my Intel data center SSDs, the A4000 GPU, and various other bits. Through careful experimentation and lots of BIOS tinkering, I've managed to create a setup that handles almost everything my old Epyc box did, at half the price.\n\nPower draw sits at around 80W idle and peaks at 400W under load - surprisingly reasonable for the sheer computing power on tap. If you're interested in maxing out consumer hardware for server applications, this might just be the sweet spot. Full Proxmox configuration details coming in future videos.\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n===\n\n00:00 - Consumer hardware for a server?!\n05:56 - What is a PCIe Lane?\n08:13 - Asus ProArt X870-E Overview\n15:49 - Power Usage", "Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E", "https://www.youtube.com/watch?v=isqWT0rvwmc", "isqWT0rvwmc", 31, 1037, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032900_Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E.mp4", false, ~U[2025-03-29 12:00:56Z]] 19:35:40.065 [debug] QUERY OK source="sources" db=0.1ms idle=55.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:40.065 [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] 19:35:40.065 [debug] QUERY OK source="media_items" db=0.1ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365506] 19:35:40.065 [debug] Current batch of media processed. Will check again in 1000ms 19:35:41.066 [debug] Current batch of media processed. Will check again in 1000ms 19:35:42.067 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In today's video I will take you through the specs and features of this awesome powerhouse of a motherboard and discuss why it's perhaps not the right choice for a new build in 2025 after all.\n\nI dive into the pros and cons of this workstation-class setup, including:\n\n- The incredible specs and expansion capabilities\n- Unexpected challenges getting Proxmox to boot\n- Persistent PCIe errors that gave me pause\n- Power consumption concerns (200W+ at idle!)\n- How it compares to newer Zen 5 chips like the 9950X\n\nWatch as I share my honest experience with this high-end but aging platform, discussing whether it still makes sense for homelab enthusiasts when newer, more efficient alternatives exist. Is this motherboard a PCIe lane junkie's dream come true, or should you save your money for something else?\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 1441, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032200_ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?.mp4", "id" => "yF9kg_o4Ct8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yF9kg_o4Ct8", "playlist_index" => 8, "timestamp" => 1742666911, "title" => "ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?", "upload_date" => "20250322"} 19:35:42.068 [debug] QUERY OK source="sources" db=0.1ms idle=721.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:42.068 [debug] QUERY OK source="sources" db=0.1ms idle=721.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:42.068 [debug] QUERY OK source="media_items" db=0.2ms idle=722.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-22 18:08:31Z], 31] 19:35:42.070 [debug] QUERY OK source="media_items" db=1.4ms idle=722.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In today's video I will take you through the specs and features of this awesome powerhouse of a motherboard and discuss why it's perhaps not the right choice for a new build in 2025 after all.\n\nI dive into the pros and cons of this workstation-class setup, including:\n\n- The incredible specs and expansion capabilities\n- Unexpected challenges getting Proxmox to boot\n- Persistent PCIe errors that gave me pause\n- Power consumption concerns (200W+ at idle!)\n- How it compares to newer Zen 5 chips like the 9950X\n\nWatch as I share my honest experience with this high-end but aging platform, discussing whether it still makes sense for homelab enthusiasts when newer, more efficient alternatives exist. Is this motherboard a PCIe lane junkie's dream come true, or should you save your money for something else?\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?", "e138205f-7411-4992-904e-d6d01370aa74", "https://www.youtube.com/watch?v=yF9kg_o4Ct8", false, "yF9kg_o4Ct8", 31, [], 1441, false, 8, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032200_ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?.mp4", false, false, 98, ~U[2025-03-22 18:08:31Z], ~U[2026-01-01 01:35:42Z], ~U[2026-01-01 01:35:42Z], "In today's video I will take you through the specs and features of this awesome powerhouse of a motherboard and discuss why it's perhaps not the right choice for a new build in 2025 after all.\n\nI dive into the pros and cons of this workstation-class setup, including:\n\n- The incredible specs and expansion capabilities\n- Unexpected challenges getting Proxmox to boot\n- Persistent PCIe errors that gave me pause\n- Power consumption concerns (200W+ at idle!)\n- How it compares to newer Zen 5 chips like the 9950X\n\nWatch as I share my honest experience with this high-end but aging platform, discussing whether it still makes sense for homelab enthusiasts when newer, more efficient alternatives exist. Is this motherboard a PCIe lane junkie's dream come true, or should you save your money for something else?\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?", "https://www.youtube.com/watch?v=yF9kg_o4Ct8", "yF9kg_o4Ct8", 31, 1441, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032200_ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?.mp4", false, ~U[2025-03-22 18:08:31Z]] 19:35:42.070 [debug] QUERY OK source="sources" db=0.1ms idle=58.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:42.071 [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] 19:35:42.071 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365507] 19:35:42.071 [debug] Current batch of media processed. Will check again in 1000ms 19:35:43.072 [debug] Current batch of media processed. Will check again in 1000ms 19:35:44.073 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Now they went and did it. Plex made remote streaming a paid feature. Alex breaks down the latest Plex news in todays video.\n\n- https://www.plex.tv/blog/important-2025-plex-updates/\n- https://old.reddit.com/r/selfhosted/comments/1jeyz7w/important_2025_plex_updates_remote_streaming/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 743, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031900_Major Plex news - Plex is now charging for remote streaming?!.mp4", "id" => "pt-dSeCUQI0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pt-dSeCUQI0", "playlist_index" => 9, "timestamp" => 1742404620, "title" => "Major Plex news - Plex is now charging for remote streaming?!", "upload_date" => "20250319"} 19:35:44.074 [debug] QUERY OK source="sources" db=0.1ms idle=727.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:44.074 [debug] QUERY OK source="sources" db=0.1ms idle=727.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:44.074 [debug] QUERY OK source="media_items" db=0.1ms idle=728.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-19 17:17:00Z], 31] 19:35:44.075 [debug] QUERY OK source="media_items" db=0.6ms idle=728.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now they went and did it. Plex made remote streaming a paid feature. Alex breaks down the latest Plex news in todays video.\n\n- https://www.plex.tv/blog/important-2025-plex-updates/\n- https://old.reddit.com/r/selfhosted/comments/1jeyz7w/important_2025_plex_updates_remote_streaming/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Major Plex news - Plex is now charging for remote streaming?!", "ba33ad2e-b793-442f-ba35-abf3e3bdb4f4", "https://www.youtube.com/watch?v=pt-dSeCUQI0", false, "pt-dSeCUQI0", 31, [], 743, false, 9, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031900_Major Plex news - Plex is now charging for remote streaming?!.mp4", false, false, 98, ~U[2025-03-19 17:17:00Z], ~U[2026-01-01 01:35:44Z], ~U[2026-01-01 01:35:44Z], "Now they went and did it. Plex made remote streaming a paid feature. Alex breaks down the latest Plex news in todays video.\n\n- https://www.plex.tv/blog/important-2025-plex-updates/\n- https://old.reddit.com/r/selfhosted/comments/1jeyz7w/important_2025_plex_updates_remote_streaming/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Major Plex news - Plex is now charging for remote streaming?!", "https://www.youtube.com/watch?v=pt-dSeCUQI0", "pt-dSeCUQI0", 31, 743, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031900_Major Plex news - Plex is now charging for remote streaming?!.mp4", false, ~U[2025-03-19 17:17:00Z]] 19:35:44.076 [debug] QUERY OK source="sources" db=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" = ?) [31] 19:35:44.076 [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] 19:35:44.076 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365508] 19:35:44.076 [debug] Current batch of media processed. Will check again in 1000ms 19:35:45.077 [debug] Current batch of media processed. Will check again in 1000ms 19:35:46.079 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I tackle a monster server build based on the AMD Threadripper Pro 5955WX - a 16-core, 32-thread CPU paired with the ridiculously feature-packed ASUS Pro WS WRX80E-SAGE SE Wi-Fi 2 motherboard. After my previous Epyc system mysteriously died (see link below), I decided to upgrade rather than waste a crisis!\n\nThis build showcases what might be the most impressive motherboard I've ever seen - weighing in at 17 pounds with seven full-bandwidth PCIe Gen 4 slots (all bifurcatable!), three M.2 slots, dual 10Gb Intel Ethernet, and more power connectors than you can shake a stick at. I discuss the unique challenges of this platform, from installing a CPU with a torque wrench to hotel room breadboarding (yes, really) and power supply compatibility checks.\n\nUnfortunately, this build journey hits a major roadblock when the massive motherboard simply won't fit in my Sliger CX4712 case! Stay tuned for part 3 when the larger case arrives.\n\n---------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n-------------\n\nTIMESTAMPS:\n00:00 - Intro & component overview\n03:45 - Hotel room breadboarding adventure\n07:30 - Power supply requirements & considerations\n09:15 - Memory compatibility checks\n11:20 - Power cable pin-out verification\n14:30 - The case size disappointment\n16:00 - Plans for part 3\n\nLINKS:\nPart 1 - Diagnosing my failed Epic system: https://youtu.be/5r4X4SIm4f4\nSliger CX4712 Case: https://www.sliger.com/products/rackmount/4u/cx4712/\n\n#ThreadripperPro #ServerBuild #Workstation #PCBuilding #TechUpgrade", "duration" => 1086, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031400_When Nothing Goes According to Plan | Threadripper PRO 5955WX server build.mp4", "id" => "7z13WSotAX4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7z13WSotAX4", "playlist_index" => 10, "timestamp" => 1741963996, "title" => "When Nothing Goes According to Plan | Threadripper PRO 5955WX server build", "upload_date" => "20250314"} 19:35:46.079 [debug] QUERY OK source="sources" db=0.1ms idle=732.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:46.079 [debug] QUERY OK source="sources" db=0.1ms idle=733.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:46.080 [debug] QUERY OK source="media_items" db=0.1ms idle=733.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-14 14:53:16Z], 31] 19:35:46.082 [debug] QUERY OK source="media_items" db=1.7ms idle=733.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I tackle a monster server build based on the AMD Threadripper Pro 5955WX - a 16-core, 32-thread CPU paired with the ridiculously feature-packed ASUS Pro WS WRX80E-SAGE SE Wi-Fi 2 motherboard. After my previous Epyc system mysteriously died (see link below), I decided to upgrade rather than waste a crisis!\n\nThis build showcases what might be the most impressive motherboard I've ever seen - weighing in at 17 pounds with seven full-bandwidth PCIe Gen 4 slots (all bifurcatable!), three M.2 slots, dual 10Gb Intel Ethernet, and more power connectors than you can shake a stick at. I discuss the unique challenges of this platform, from installing a CPU with a torque wrench to hotel room breadboarding (yes, really) and power supply compatibility checks.\n\nUnfortunately, this build journey hits a major roadblock when the massive motherboard simply won't fit in my Sliger CX4712 case! Stay tuned for part 3 when the larger case arrives.\n\n---------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n-------------\n\nTIMESTAMPS:\n00:00 - Intro & component overview\n03:45 - Hotel room breadboarding adventure\n07:30 - Power supply requirements & considerations\n09:15 - Memory compatibility checks\n11:20 - Power cable pin-out verification\n14:30 - The case size disappointment\n16:00 - Plans for part 3\n\nLINKS:\nPart 1 - Diagnosing my failed Epic system: https://youtu.be/5r4X4SIm4f4\nSliger CX4712 Case: https://www.sliger.com/products/rackmount/4u/cx4712/\n\n#ThreadripperPro #ServerBuild #Workstation #PCBuilding #TechUpgrade", "When Nothing Goes According to Plan | Threadripper PRO 5955WX server build", "0fb3e63d-e228-4326-ad6c-91e0e6765bdf", "https://www.youtube.com/watch?v=7z13WSotAX4", false, "7z13WSotAX4", 31, [], 1086, false, 10, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031400_When Nothing Goes According to Plan | Threadripper PRO 5955WX server build.mp4", false, false, 98, ~U[2025-03-14 14:53:16Z], ~U[2026-01-01 01:35:46Z], ~U[2026-01-01 01:35:46Z], "In this video, I tackle a monster server build based on the AMD Threadripper Pro 5955WX - a 16-core, 32-thread CPU paired with the ridiculously feature-packed ASUS Pro WS WRX80E-SAGE SE Wi-Fi 2 motherboard. After my previous Epyc system mysteriously died (see link below), I decided to upgrade rather than waste a crisis!\n\nThis build showcases what might be the most impressive motherboard I've ever seen - weighing in at 17 pounds with seven full-bandwidth PCIe Gen 4 slots (all bifurcatable!), three M.2 slots, dual 10Gb Intel Ethernet, and more power connectors than you can shake a stick at. I discuss the unique challenges of this platform, from installing a CPU with a torque wrench to hotel room breadboarding (yes, really) and power supply compatibility checks.\n\nUnfortunately, this build journey hits a major roadblock when the massive motherboard simply won't fit in my Sliger CX4712 case! Stay tuned for part 3 when the larger case arrives.\n\n---------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n-------------\n\nTIMESTAMPS:\n00:00 - Intro & component overview\n03:45 - Hotel room breadboarding adventure\n07:30 - Power supply requirements & considerations\n09:15 - Memory compatibility checks\n11:20 - Power cable pin-out verification\n14:30 - The case size disappointment\n16:00 - Plans for part 3\n\nLINKS:\nPart 1 - Diagnosing my failed Epic system: https://youtu.be/5r4X4SIm4f4\nSliger CX4712 Case: https://www.sliger.com/products/rackmount/4u/cx4712/\n\n#ThreadripperPro #ServerBuild #Workstation #PCBuilding #TechUpgrade", "When Nothing Goes According to Plan | Threadripper PRO 5955WX server build", "https://www.youtube.com/watch?v=7z13WSotAX4", "7z13WSotAX4", 31, 1086, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031400_When Nothing Goes According to Plan | Threadripper PRO 5955WX server build.mp4", false, ~U[2025-03-14 14:53:16Z]] 19:35:46.082 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:46.082 [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] 19:35:46.083 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365509] 19:35:46.083 [debug] Current batch of media processed. Will check again in 1000ms 19:35:47.083 [debug] Current batch of media processed. Will check again in 1000ms 19:35:47.347 [info] {"source":"oban","duration":3359,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:35:48.084 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "She's dead Jim.\n\nThe Supermicro H12SSL-i motherboard is an ex-motherboard. It has ceased to be. And in today's video, we'll talk about what's gone wrong, and how I plan to fix it.\n\nhttps://forums.servethehome.com/index.php?threads%2Fh12ssl-i-stuck-at-bmc-initiating.38043%2Fpage-5\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 1613, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e030600_EPYC FAIL - My Epyc homelab server is DEAD.mp4", "id" => "5r4X4SIm4f4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5r4X4SIm4f4", "playlist_index" => 11, "timestamp" => 1741296372, "title" => "EPYC FAIL - My Epyc homelab server is DEAD", "upload_date" => "20250306"} 19:35:48.085 [debug] QUERY OK source="sources" db=0.1ms idle=738.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:48.085 [debug] QUERY OK source="sources" db=0.1ms idle=738.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:48.085 [debug] QUERY OK source="media_items" db=0.1ms idle=739.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-06 21:26:12Z], 31] 19:35:48.087 [debug] QUERY OK source="media_items" db=1.1ms idle=738.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["She's dead Jim.\n\nThe Supermicro H12SSL-i motherboard is an ex-motherboard. It has ceased to be. And in today's video, we'll talk about what's gone wrong, and how I plan to fix it.\n\nhttps://forums.servethehome.com/index.php?threads%2Fh12ssl-i-stuck-at-bmc-initiating.38043%2Fpage-5\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "EPYC FAIL - My Epyc homelab server is DEAD", "35c97602-ba2b-4478-bf0d-d33a653e13e9", "https://www.youtube.com/watch?v=5r4X4SIm4f4", false, "5r4X4SIm4f4", 31, [], 1613, false, 11, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e030600_EPYC FAIL - My Epyc homelab server is DEAD.mp4", false, false, 98, ~U[2025-03-06 21:26:12Z], ~U[2026-01-01 01:35:48Z], ~U[2026-01-01 01:35:48Z], "She's dead Jim.\n\nThe Supermicro H12SSL-i motherboard is an ex-motherboard. It has ceased to be. And in today's video, we'll talk about what's gone wrong, and how I plan to fix it.\n\nhttps://forums.servethehome.com/index.php?threads%2Fh12ssl-i-stuck-at-bmc-initiating.38043%2Fpage-5\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "EPYC FAIL - My Epyc homelab server is DEAD", "https://www.youtube.com/watch?v=5r4X4SIm4f4", "5r4X4SIm4f4", 31, 1613, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e030600_EPYC FAIL - My Epyc homelab server is DEAD.mp4", false, ~U[2025-03-06 21:26:12Z]] 19:35:48.087 [debug] QUERY OK source="sources" db=0.1ms idle=67.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:48.087 [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] 19:35:48.088 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365510] 19:35:48.088 [debug] Current batch of media processed. Will check again in 1000ms 19:35:49.088 [debug] Current batch of media processed. Will check again in 1000ms 19:35:50.090 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Is shucking a drive still worth it in 2024? The 20tb Easystore drives are $249 for Black Friday this year, but what's inside? Find out in today's video.\n\nhttps://blog.ktz.me/new-hard-drive-rituals/\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 636, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e112700_To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024.mp4", "id" => "c2mvIbY9n28", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c2mvIbY9n28", "playlist_index" => 12, "timestamp" => 1732740469, "title" => "To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024", "upload_date" => "20241127"} 19:35:50.090 [debug] QUERY OK source="sources" db=0.1ms idle=743.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:50.091 [debug] QUERY OK source="sources" db=0.0ms idle=744.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:50.091 [debug] QUERY OK source="media_items" db=0.1ms idle=744.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-27 20:47:49Z], 31] 19:35:50.095 [debug] QUERY OK source="media_items" db=3.8ms idle=744.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Is shucking a drive still worth it in 2024? The 20tb Easystore drives are $249 for Black Friday this year, but what's inside? Find out in today's video.\n\nhttps://blog.ktz.me/new-hard-drive-rituals/\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024", "7336f71f-455d-439a-8a5e-38a26b39b723", "https://www.youtube.com/watch?v=c2mvIbY9n28", false, "c2mvIbY9n28", 31, [], 636, false, 12, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e112700_To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024.mp4", false, false, 98, ~U[2024-11-27 20:47:49Z], ~U[2026-01-01 01:35:50Z], ~U[2026-01-01 01:35:50Z], "Is shucking a drive still worth it in 2024? The 20tb Easystore drives are $249 for Black Friday this year, but what's inside? Find out in today's video.\n\nhttps://blog.ktz.me/new-hard-drive-rituals/\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024", "https://www.youtube.com/watch?v=c2mvIbY9n28", "c2mvIbY9n28", 31, 636, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e112700_To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024.mp4", false, ~U[2024-11-27 20:47:49Z]] 19:35:50.095 [debug] QUERY OK source="sources" db=0.1ms idle=73.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:50.095 [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] 19:35:50.096 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365511] 19:35:50.096 [debug] Current batch of media processed. Will check again in 1000ms 19:35:51.097 [debug] Current batch of media processed. Will check again in 1000ms 19:35:52.099 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Let's bypass that big white AT&T BGW320 gateway with the WAS-110 and the 8311 community firmware!\n\n- https://pon.wiki/guides/masquerade-as-the-att-inc-bgw320-500-505-on-xgs-pon-with-the-bfw-solutions-was-110/#determine-if-youre-an-xgs-pon-subscriber\n- https://pon.wiki/guides/install-8311-community-firmware-on-the-bfw-solutions-was-110/\n- https://discord.com/servers/8311-886329492438671420\n\n----------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 1159, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e101100_Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311.mp4", "id" => "BluDAuSU1T4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BluDAuSU1T4", "playlist_index" => 13, "timestamp" => 1728666054, "title" => "Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311", "upload_date" => "20241011"} 19:35:52.100 [debug] QUERY OK source="sources" db=0.2ms idle=753.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:52.100 [debug] QUERY OK source="sources" db=0.1ms idle=753.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:52.100 [debug] QUERY OK source="media_items" db=0.2ms idle=754.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-11 17:00:54Z], 31] 19:35:52.102 [debug] QUERY OK source="media_items" db=1.6ms idle=754.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Let's bypass that big white AT&T BGW320 gateway with the WAS-110 and the 8311 community firmware!\n\n- https://pon.wiki/guides/masquerade-as-the-att-inc-bgw320-500-505-on-xgs-pon-with-the-bfw-solutions-was-110/#determine-if-youre-an-xgs-pon-subscriber\n- https://pon.wiki/guides/install-8311-community-firmware-on-the-bfw-solutions-was-110/\n- https://discord.com/servers/8311-886329492438671420\n\n----------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311", "998350a6-287e-4edb-b1dc-e6866af1ed78", "https://www.youtube.com/watch?v=BluDAuSU1T4", false, "BluDAuSU1T4", 31, [], 1159, false, 13, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e101100_Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311.mp4", false, false, 98, ~U[2024-10-11 17:00:54Z], ~U[2026-01-01 01:35:52Z], ~U[2026-01-01 01:35:52Z], "Let's bypass that big white AT&T BGW320 gateway with the WAS-110 and the 8311 community firmware!\n\n- https://pon.wiki/guides/masquerade-as-the-att-inc-bgw320-500-505-on-xgs-pon-with-the-bfw-solutions-was-110/#determine-if-youre-an-xgs-pon-subscriber\n- https://pon.wiki/guides/install-8311-community-firmware-on-the-bfw-solutions-was-110/\n- https://discord.com/servers/8311-886329492438671420\n\n----------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311", "https://www.youtube.com/watch?v=BluDAuSU1T4", "BluDAuSU1T4", 31, 1159, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e101100_Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311.mp4", false, ~U[2024-10-11 17:00:54Z]] 19:35:52.103 [debug] QUERY OK source="sources" db=0.1ms idle=77.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:52.103 [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] 19:35:52.103 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365512] 19:35:52.104 [debug] Current batch of media processed. Will check again in 1000ms 19:35:53.104 [debug] Current batch of media processed. Will check again in 1000ms 19:35:54.106 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I break down a recent build of a Lenovo M720q box that has dual SFP+ NICs to run OPNsense for a 5gig symmetrical fiber line from AT&T that just went into Badger towers.\n\nBuild your own tiny powerhouse router with virtualised and passed through NICs with Proxmox. I'll show you the gist of how to do that in this video.\n\nLinks:\n- https://store.untrustedsource.com/\n- https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/\n\n-------------------\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 1279, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e092400_A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense.mp4", "id" => "oZeRlcrVSXM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oZeRlcrVSXM", "playlist_index" => 14, "timestamp" => 1727140523, "title" => "A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense", "upload_date" => "20240924"} 19:35:54.106 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=760.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:54.107 [debug] QUERY OK source="sources" db=0.1ms idle=760.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:54.107 [debug] QUERY OK source="media_items" db=0.2ms idle=760.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-24 01:15:23Z], 31] 19:35:54.109 [debug] QUERY OK source="media_items" db=1.8ms idle=761.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I break down a recent build of a Lenovo M720q box that has dual SFP+ NICs to run OPNsense for a 5gig symmetrical fiber line from AT&T that just went into Badger towers.\n\nBuild your own tiny powerhouse router with virtualised and passed through NICs with Proxmox. I'll show you the gist of how to do that in this video.\n\nLinks:\n- https://store.untrustedsource.com/\n- https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/\n\n-------------------\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense", "9330475d-1fe6-495c-9622-ae79dd3b5c0a", "https://www.youtube.com/watch?v=oZeRlcrVSXM", false, "oZeRlcrVSXM", 31, [], 1279, false, 14, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e092400_A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense.mp4", false, false, 98, ~U[2024-09-24 01:15:23Z], ~U[2026-01-01 01:35:54Z], ~U[2026-01-01 01:35:54Z], "In this video I break down a recent build of a Lenovo M720q box that has dual SFP+ NICs to run OPNsense for a 5gig symmetrical fiber line from AT&T that just went into Badger towers.\n\nBuild your own tiny powerhouse router with virtualised and passed through NICs with Proxmox. I'll show you the gist of how to do that in this video.\n\nLinks:\n- https://store.untrustedsource.com/\n- https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/\n\n-------------------\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense", "https://www.youtube.com/watch?v=oZeRlcrVSXM", "oZeRlcrVSXM", 31, 1279, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e092400_A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense.mp4", false, ~U[2024-09-24 01:15:23Z]] 19:35:54.110 [debug] QUERY OK source="sources" db=0.1ms idle=81.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:54.110 [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] 19:35:54.110 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365513] 19:35:54.111 [debug] Current batch of media processed. Will check again in 1000ms 19:35:55.111 [debug] Current batch of media processed. Will check again in 1000ms 19:35:56.112 [debug] Current batch of media processed. Will check again in 1000ms 19:35:57.114 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join me, Chris, and Brent from JB as we fly to Toronto to deploy our shiny new colo server in Canada. We'll be deploying the 45homelab HL15 server.\n\nGuest appearance from Stephen at NDLS.\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 1678, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e082800_Racking and stacking an off-site backup server for Jupiter Broadcasting.mp4", "id" => "6CZad9Qjfxo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6CZad9Qjfxo", "playlist_index" => 15, "timestamp" => 1724884664, "title" => "Racking and stacking an off-site backup server for Jupiter Broadcasting", "upload_date" => "20240828"} 19:35:57.114 [debug] QUERY OK source="sources" db=0.2ms idle=1767.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:57.114 [debug] QUERY OK source="sources" db=0.1ms idle=1768.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:57.115 [debug] QUERY OK source="media_items" db=0.2ms idle=1768.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-28 22:37:44Z], 31] 19:35:57.117 [debug] QUERY OK source="media_items" db=2.0ms idle=1083.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join me, Chris, and Brent from JB as we fly to Toronto to deploy our shiny new colo server in Canada. We'll be deploying the 45homelab HL15 server.\n\nGuest appearance from Stephen at NDLS.\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Racking and stacking an off-site backup server for Jupiter Broadcasting", "766bc1d5-83ea-488d-b9bd-3b91b878cf5c", "https://www.youtube.com/watch?v=6CZad9Qjfxo", false, "6CZad9Qjfxo", 31, [], 1678, false, 15, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e082800_Racking and stacking an off-site backup server for Jupiter Broadcasting.mp4", false, false, 98, ~U[2024-08-28 22:37:44Z], ~U[2026-01-01 01:35:57Z], ~U[2026-01-01 01:35:57Z], "Join me, Chris, and Brent from JB as we fly to Toronto to deploy our shiny new colo server in Canada. We'll be deploying the 45homelab HL15 server.\n\nGuest appearance from Stephen at NDLS.\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Racking and stacking an off-site backup server for Jupiter Broadcasting", "https://www.youtube.com/watch?v=6CZad9Qjfxo", "6CZad9Qjfxo", 31, 1678, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e082800_Racking and stacking an off-site backup server for Jupiter Broadcasting.mp4", false, ~U[2024-08-28 22:37:44Z]] 19:35:57.117 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [31] 19:35:57.118 [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] 19:35:57.118 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365514] 19:35:57.118 [debug] Current batch of media processed. Will check again in 1000ms 19:35:58.119 [debug] Current batch of media processed. Will check again in 1000ms 19:35:59.120 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Automating my garage door with Home Assistant, ESPHome and Aqara Zigbee sensors.\n\n* 3d printed hinge - https://www.printables.com/model/712140-aqara-door-sensor-garage-door-mount\n* Aqara Zigbee sensor - https://amzn.to/46UhogD\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 661, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081700_I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee.mp4", "id" => "zv2E8JKl3_c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zv2E8JKl3_c", "playlist_index" => 16, "timestamp" => 1723859907, "title" => "I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee", "upload_date" => "20240817"} 19:35:59.121 [debug] QUERY OK source="sources" db=0.1ms idle=774.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:35:59.121 [debug] QUERY OK source="sources" db=0.1ms idle=774.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:59.122 [debug] QUERY OK source="media_items" db=0.1ms idle=774.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-17 01:58:27Z], 31] 19:35:59.122 [debug] QUERY OK source="media_items" db=0.7ms idle=775.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Automating my garage door with Home Assistant, ESPHome and Aqara Zigbee sensors.\n\n* 3d printed hinge - https://www.printables.com/model/712140-aqara-door-sensor-garage-door-mount\n* Aqara Zigbee sensor - https://amzn.to/46UhogD\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee", "55bdf289-2d38-4515-aae6-b2e85a337f36", "https://www.youtube.com/watch?v=zv2E8JKl3_c", false, "zv2E8JKl3_c", 31, [], 661, false, 16, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081700_I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee.mp4", false, false, 98, ~U[2024-08-17 01:58:27Z], ~U[2026-01-01 01:35:59Z], ~U[2026-01-01 01:35:59Z], "Automating my garage door with Home Assistant, ESPHome and Aqara Zigbee sensors.\n\n* 3d printed hinge - https://www.printables.com/model/712140-aqara-door-sensor-garage-door-mount\n* Aqara Zigbee sensor - https://amzn.to/46UhogD\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee", "https://www.youtube.com/watch?v=zv2E8JKl3_c", "zv2E8JKl3_c", 31, 661, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081700_I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee.mp4", false, ~U[2024-08-17 01:58:27Z]] 19:35:59.123 [debug] QUERY OK source="sources" db=0.1ms idle=87.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:35:59.123 [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] 19:35:59.123 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365515] 19:35:59.123 [debug] Current batch of media processed. Will check again in 1000ms 19:36:00.124 [debug] Current batch of media processed. Will check again in 1000ms 19:36:00.854 [info] {"source":"oban","duration":143,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:36:01.125 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Building a colo server for Jupiter Broadcasting using the 45Homelab HL15 server.\n\nhttps://jupiterbroadcasting.com/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "duration" => 635, "filename" => "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081200_Building a colo server for Jupiter Broadcasting.mp4", "id" => "zC_uKX2JSfc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zC_uKX2JSfc", "playlist_index" => 17, "timestamp" => 1723487866, "title" => "Building a colo server for Jupiter Broadcasting", "upload_date" => "20240812"} 19:36:01.126 [debug] QUERY OK source="sources" db=0.1ms idle=779.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:36:01.126 [debug] QUERY OK source="sources" db=0.1ms idle=779.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:01.126 [debug] QUERY OK source="media_items" db=0.1ms idle=779.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-12 18:37:46Z], 31] 19:36:01.128 [debug] QUERY OK source="media_items" db=1.3ms idle=272.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Building a colo server for Jupiter Broadcasting using the 45Homelab HL15 server.\n\nhttps://jupiterbroadcasting.com/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Building a colo server for Jupiter Broadcasting", "283be8bb-d072-4652-a69e-899fe5cbf70f", "https://www.youtube.com/watch?v=zC_uKX2JSfc", false, "zC_uKX2JSfc", 31, [], 635, false, 17, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081200_Building a colo server for Jupiter Broadcasting.mp4", false, false, 98, ~U[2024-08-12 18:37:46Z], ~U[2026-01-01 01:36:01Z], ~U[2026-01-01 01:36:01Z], "Building a colo server for Jupiter Broadcasting using the 45Homelab HL15 server.\n\nhttps://jupiterbroadcasting.com/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Building a colo server for Jupiter Broadcasting", "https://www.youtube.com/watch?v=zC_uKX2JSfc", "zC_uKX2JSfc", 31, 635, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081200_Building a colo server for Jupiter Broadcasting.mp4", false, ~U[2024-08-12 18:37:46Z]] 19:36:01.128 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [31] 19:36:01.128 [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] 19:36:01.129 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [365516] 19:36:01.129 [debug] Current batch of media processed. Will check again in 1000ms 19:36:02.129 [debug] Current batch of media processed. Will check again in 1000ms 19:36:03.073 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCh66aXZ_hqiT7au6Nwb8p3Q --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/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/20/3d/203dc1c381ed89d6d229e94c325518007fbfb97b35492c9063946b5502e79d0f.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/10/5f/105f6cdba7ec6230cd0a584174f1c121b0e64ae4b77db4de75f13714a1def442.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:36:03.073 [debug] Gracefully stopping file follower 19:36:03.074 [debug] QUERY OK source="sources" db=0.2ms idle=727.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [31] 19:36:03.074 [debug] QUERY OK source="sources" db=0.1ms idle=727.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.074 [debug] QUERY OK source="media_items" db=0.1ms idle=728.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 02:47:01Z], 31] 19:36:03.076 [debug] QUERY OK source="media_items" db=0.8ms idle=728.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["About eighteen months ago I asked everyone to help me figure out the best CPU for a media server. Your media server is only as good as the chip that powers it, so I wanted real data from real systems. Today I am excited to show you a brand new website that collects and displays all of your QuickSync benchmark results in one place. You can filter by CPU generation, username, or compare different chips side by side. It is an easy way to understand how Intel QuickSync performs across many workloads and generations.\n\nhttps://quicksync.ktz.me\n\nIn this video I walk you through how the site works, how to run the benchmark on your own system, and how to submit your results to the public database. The more results we collect, the more useful the data becomes for everyone building a media server. I also talk about future ideas such as adding NVIDIA and AMD hardware support and share a few updates from my life and upcoming projects.\n\n00:00 - Start\n05:46 - How to submit YOUR results\n14:21 - CPU Power Efficiency Matters\n16:43 - Channel Update\n17:37 - New podcast?", "In-depth Intel QuickSync video transcoding performance testing for Media Servers", "0e7a0cb5-359a-4851-bd2e-48a5f51f7911", "https://www.youtube.com/watch?v=NSpw-H2wwa0", false, "NSpw-H2wwa0", 31, [], 1219, false, 1, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e120500_In-depth Intel QuickSync video transcoding performance testing for Media Servers.mp4", false, false, 98, ~U[2025-12-05 02:47:01Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "About eighteen months ago I asked everyone to help me figure out the best CPU for a media server. Your media server is only as good as the chip that powers it, so I wanted real data from real systems. Today I am excited to show you a brand new website that collects and displays all of your QuickSync benchmark results in one place. You can filter by CPU generation, username, or compare different chips side by side. It is an easy way to understand how Intel QuickSync performs across many workloads and generations.\n\nhttps://quicksync.ktz.me\n\nIn this video I walk you through how the site works, how to run the benchmark on your own system, and how to submit your results to the public database. The more results we collect, the more useful the data becomes for everyone building a media server. I also talk about future ideas such as adding NVIDIA and AMD hardware support and share a few updates from my life and upcoming projects.\n\n00:00 - Start\n05:46 - How to submit YOUR results\n14:21 - CPU Power Efficiency Matters\n16:43 - Channel Update\n17:37 - New podcast?", "In-depth Intel QuickSync video transcoding performance testing for Media Servers", "https://www.youtube.com/watch?v=NSpw-H2wwa0", "NSpw-H2wwa0", 31, 1219, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e120500_In-depth Intel QuickSync video transcoding performance testing for Media Servers.mp4", false, ~U[2025-12-05 02:47:01Z]] 19:36:03.076 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.076 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-27 23:31:11Z], 31] 19:36:03.079 [debug] QUERY OK source="media_items" db=2.2ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this week’s self-hosting and open-source news roundup, Alex from KTZ Systems covers the biggest headlines affecting homelabbers, tinkerers, and tech enthusiasts alike. \n\nFrom the groundbreaking ZFS AnyRaid announcement by HexOS, to Mozilla shuttering Pocket and the rise of self-hosted read-it-later apps like Wallabag and Shiori, there’s plenty to digest. We also touch on Home Assistant’s major deprecations, MinIO’s controversial change, Ubuntu embracing Rust, a cool ThinkNAS build on Reddit, and fresh NAS hardware unveiled at Computex. \n\nOh, and Plex is selling your data now? \n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---\nChapters:\n\n00:00 - Start\n00:27 - ZFS AnyRaid - HexOS\n03:05 - Mozilla shutters Pocket\n05:08 - Alt 1 - Wallabag\n05:33 - Alt 2 - Shiori\n06:08 - Alt 3 - Linkace\n06:37 - Alt 4 - Karakeep\n07:29 - Plex now wants to SELL my data?\n08:46 - PocketID v1.0\n09:10 - MinIO Enshittifies\n11:03 - Ubuntu is going rusty\n11:35 - Home Assistant deprecates things\n12:37 - Computex wrap-up\n14:19 - ThinkNAS\n14:57 - PSA for Ghost CMS users\n\n\n---\n\nLinks & Sources:- ZFS AnyRaid Announcement\nHexOS Blog – https://hexos.com/blog/introducing-zfs-anyraid-sponsored-by-eshtek\n\n- ZFS Architecture Background\nOpenZFS Docs – https://openzfs.github.io/openzfs-docs\n\n- TrueNAS & ZFS Context\nTrueNAS Docs – https://www.truenas.com/docs\n\n- ZFS Dev Leadership Call (May 2025)\nYouTube – https://www.youtube.com/watch?v=MifloJFCpLU\n\n- Mozilla Shutters Pocket\nMozilla Blog – https://blog.mozilla.org/en/mozilla/sunsetting-pocket\n\n- Wallabag\nProject Page – https://wallabag.org\n\n- Shiori\nGitHub Repo – https://github.com/go-shiori/shiori\n\n- LinkAce\nProject Site – https://www.linkace.org\n\n- Karakeep (formerly Hoarder)\nWebsite – https://karakeep.com\n\n- Plex Privacy Update Discussion\nReddit Thread – https://www.reddit.com/r/selfhosted/s/wzjFRg0mCP\n\n- PocketID v1.0 Release\nGitHub – https://github.com/pocket-id/pocket-id/releases/tag/v1.0.0\n\n- PocketID Demo\nTailscale YouTube – https://www.youtube.com/@Tailscale\n\n- MinIO PR #3509 (Code Removal)\nGitHub – https://github.com/minio/minio/pull/3509\n\n- Garage (S3-compatible alternative)\nProject Site – https://garagehq.deuxfleurs.fr\n\n- OpenMaxIO (community fork)\nGitHub – https://github.com/OpenMaxIO/openmaxio-object-browser\n\n- Ubuntu Adopts sudo-rs\nBlog by Jon Seager – https://jnsgr.uk/2025/05/adopting-sudo-rs-by-default-in-ubuntu\n\n- Home Assistant Deprecation Announcement\nHome Assistant Blog – https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/\n\n- MinisForum N5 Pro NAS at Computex\nTechPowerUp Coverage – https://www.techpowerup.com/337240/minisforum-shows-off-upcoming-amd-powered-nas-at-computex-2025\n\n- LincStation S1/N2 NAS Devices (with Unraid)\nNASCompares Coverage – https://nascompares.com/news/unraid-os-nas-devices-lincstation-s1-n2-revealed-at-computex-2025/\n\n- Robbie at NASCompares\nYouTube – https://www.youtube.com/@nascompares\n\n- ThinkNAS 4-Bay Project (Reddit)\nReddit – https://www.reddit.com/r/homelab/comments/1kifb06/thinknas_4bay_version_is_available_now/\n\n- Ghost CMS Login Bug\nGitHub Issue – https://github.com/TryGhost/Ghost/issues/23050\n\n- Self-Hosted Podcast Episode 150 (Final)\nPodcast – https://selfhosted.show/150 (airs on Friday 30th)\n\n- Alex's Blog Post on Ending the Podcast\nBlog - https://blog.ktz.me/self-hosted-150-fin/", "Mozilla shutters Pocket, ZFS is getting mismatched drive support and more | Tech News May 27th", "d82e8fe2-f6cb-45b6-b4c2-f9dedfe4b64d", "https://www.youtube.com/watch?v=YSXXlMrHfOE", false, "YSXXlMrHfOE", 31, [], 959, false, 2, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e052700_Mozilla shutters Pocket, ZFS is getting mismatched drive support and more | Tech News May 27th.mp4", false, false, 98, ~U[2025-05-27 23:31:11Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "In this week’s self-hosting and open-source news roundup, Alex from KTZ Systems covers the biggest headlines affecting homelabbers, tinkerers, and tech enthusiasts alike. \n\nFrom the groundbreaking ZFS AnyRaid announcement by HexOS, to Mozilla shuttering Pocket and the rise of self-hosted read-it-later apps like Wallabag and Shiori, there’s plenty to digest. We also touch on Home Assistant’s major deprecations, MinIO’s controversial change, Ubuntu embracing Rust, a cool ThinkNAS build on Reddit, and fresh NAS hardware unveiled at Computex. \n\nOh, and Plex is selling your data now? \n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---\nChapters:\n\n00:00 - Start\n00:27 - ZFS AnyRaid - HexOS\n03:05 - Mozilla shutters Pocket\n05:08 - Alt 1 - Wallabag\n05:33 - Alt 2 - Shiori\n06:08 - Alt 3 - Linkace\n06:37 - Alt 4 - Karakeep\n07:29 - Plex now wants to SELL my data?\n08:46 - PocketID v1.0\n09:10 - MinIO Enshittifies\n11:03 - Ubuntu is going rusty\n11:35 - Home Assistant deprecates things\n12:37 - Computex wrap-up\n14:19 - ThinkNAS\n14:57 - PSA for Ghost CMS users\n\n\n---\n\nLinks & Sources:- ZFS AnyRaid Announcement\nHexOS Blog – https://hexos.com/blog/introducing-zfs-anyraid-sponsored-by-eshtek\n\n- ZFS Architecture Background\nOpenZFS Docs – https://openzfs.github.io/openzfs-docs\n\n- TrueNAS & ZFS Context\nTrueNAS Docs – https://www.truenas.com/docs\n\n- ZFS Dev Leadership Call (May 2025)\nYouTube – https://www.youtube.com/watch?v=MifloJFCpLU\n\n- Mozilla Shutters Pocket\nMozilla Blog – https://blog.mozilla.org/en/mozilla/sunsetting-pocket\n\n- Wallabag\nProject Page – https://wallabag.org\n\n- Shiori\nGitHub Repo – https://github.com/go-shiori/shiori\n\n- LinkAce\nProject Site – https://www.linkace.org\n\n- Karakeep (formerly Hoarder)\nWebsite – https://karakeep.com\n\n- Plex Privacy Update Discussion\nReddit Thread – https://www.reddit.com/r/selfhosted/s/wzjFRg0mCP\n\n- PocketID v1.0 Release\nGitHub – https://github.com/pocket-id/pocket-id/releases/tag/v1.0.0\n\n- PocketID Demo\nTailscale YouTube – https://www.youtube.com/@Tailscale\n\n- MinIO PR #3509 (Code Removal)\nGitHub – https://github.com/minio/minio/pull/3509\n\n- Garage (S3-compatible alternative)\nProject Site – https://garagehq.deuxfleurs.fr\n\n- OpenMaxIO (community fork)\nGitHub – https://github.com/OpenMaxIO/openmaxio-object-browser\n\n- Ubuntu Adopts sudo-rs\nBlog by Jon Seager – https://jnsgr.uk/2025/05/adopting-sudo-rs-by-default-in-ubuntu\n\n- Home Assistant Deprecation Announcement\nHome Assistant Blog – https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/\n\n- MinisForum N5 Pro NAS at Computex\nTechPowerUp Coverage – https://www.techpowerup.com/337240/minisforum-shows-off-upcoming-amd-powered-nas-at-computex-2025\n\n- LincStation S1/N2 NAS Devices (with Unraid)\nNASCompares Coverage – https://nascompares.com/news/unraid-os-nas-devices-li (truncated) 19:36:03.079 [debug] QUERY OK source="sources" db=0.1ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.079 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-06 00:16:57Z], 31] 19:36:03.081 [debug] QUERY OK source="media_items" db=0.8ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 2 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\n\n\n---------------------\n\nLinks:\n\n- https://perfectmediaserver.com/01-overview/alexs-example-builds/\n- https://old.reddit.com/r/minilab/\n- https://blog.ktz.me/use-1-pikvm-instance-to-control-4-systems/\n- https://www.youtube.com/@UCFyP17HoU-vpxhIpGXnXx2g \n- https://perfectmediaserver.com/06-hardware/cases/\n- https://blog.ktz.me/the-best-media-server-cpu-in-the-world/\n- https://github.com/ironicbadger/quicksync_calc (thanks to cpt-morgan)\n- https://notes.jupiterbroadcasting.com/self-hosted/2024/episode-123/\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:07 - How much system do you really need?\n05:18 - CPU selection\n10:45 - Intel T-Series CPUs\n12:20 - Motherboards\n14:02 - Memory\n17:38 - Power Supplies\n19:43 - Cases\n22:22 - IP KVMs\n25:14 - On the bench\n26:28 - Conclusion Time", "Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection", "3d321646-10cf-48b3-98ae-709843655e54", "https://www.youtube.com/watch?v=Lga0RcHnaMY", false, "Lga0RcHnaMY", 31, [], 1743, false, 3, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e050600_Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection.mp4", false, false, 98, ~U[2025-05-06 00:16:57Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 2 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\n\n\n---------------------\n\nLinks:\n\n- https://perfectmediaserver.com/01-overview/alexs-example-builds/\n- https://old.reddit.com/r/minilab/\n- https://blog.ktz.me/use-1-pikvm-instance-to-control-4-systems/\n- https://www.youtube.com/@UCFyP17HoU-vpxhIpGXnXx2g \n- https://perfectmediaserver.com/06-hardware/cases/\n- https://blog.ktz.me/the-best-media-server-cpu-in-the-world/\n- https://github.com/ironicbadger/quicksync_calc (thanks to cpt-morgan)\n- https://notes.jupiterbroadcasting.com/self-hosted/2024/episode-123/\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:07 - How much system do you really need?\n05:18 - CPU selection\n10:45 - Intel T-Series CPUs\n12:20 - Motherboards\n14:02 - Memory\n17:38 - Power Supplies\n19:43 - Cases\n22:22 - IP KVMs\n25:14 - On the bench\n26:28 - Conclusion Time", "Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection", "https://www.youtube.com/watch?v=Lga0RcHnaMY", "Lga0RcHnaMY", 31, 1743, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e050600_Perfect Media Server Part 2 - Hardware | Intel Quick Sync + Component Selection.mp4", false, ~U[2025-05-06 00:16:57Z]] 19:36:03.081 [debug] QUERY OK source="sources" db=0.1ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.081 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-23 02:49:42Z], 31] 19:36:03.082 [debug] QUERY OK source="media_items" db=0.7ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 1 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\nPlaylist to follow once parts 2-3-4 are finished and ready.\n\n---------------------\n\nLinks:\n\n- James Bottomley Fosdem 2016 - https://archive.fosdem.org/2016/schedule/event/namespaces_and_cgroups\n+ KTZ Systems - Ansible and docker secret management - https://www.youtube.com/watch?v=CUh8FDLbj8M\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:18 - Requirements gathering\n04:13 - Introducing the tools\n05:59 - mergerfs\n11:51 - snapRAID\n19:28 - docker", "How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker.", "4819348d-6d25-48a9-9cf5-94d7dbb70536", "https://www.youtube.com/watch?v=Yt67zz9p0FU", false, "Yt67zz9p0FU", 31, [], 1413, false, 4, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e042300_How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker..mp4", false, false, 98, ~U[2025-04-23 02:49:42Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "If you're looking to build a media server, then you've come to the right place. This video discusses the many aspects of building a media server using Free and Open Source Software, wherever possible.\n\n- https://perfectmediaserver.com \n\nThis is part 1 of a multi part series where we discuss building aforementioned free and open source media server.\n\nPart 1 - The Tech Stack and an Overview\nPart 2 - Hardware and OS choices\nPart 3 - Build time! \nPart 4 - Software configuration\n\nPlaylist to follow once parts 2-3-4 are finished and ready.\n\n---------------------\n\nLinks:\n\n- James Bottomley Fosdem 2016 - https://archive.fosdem.org/2016/schedule/event/namespaces_and_cgroups\n+ KTZ Systems - Ansible and docker secret management - https://www.youtube.com/watch?v=CUh8FDLbj8M\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n---------------------\n\nChapters:\n\n00:00 - Start\n02:18 - Requirements gathering\n04:13 - Introducing the tools\n05:59 - mergerfs\n11:51 - snapRAID\n19:28 - docker", "How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker.", "https://www.youtube.com/watch?v=Yt67zz9p0FU", "Yt67zz9p0FU", 31, 1413, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e042300_How to build the Perfect Media Server | Part 1 - The Tech Stack | mergerfs, SnapRAID, and docker..mp4", false, ~U[2025-04-23 02:49:42Z]] 19:36:03.082 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.083 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-12 14:50:54Z], 31] 19:36:03.084 [debug] QUERY OK source="media_items" db=0.7ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["nix-darwin brings the nix package manager to macOS. In todays video I discuss the pros and cons of this approach, and take you through setting up a box fresh Mac in about 30 mins. \n\nMy config:\n- https://github.com/ironicbadger/nix-config\n\n\nPeople who actually know what they are doings configs:\n- https://github.com/wimpysworld/nix-config\n- https://github.com/shayne/nixos-config\n- https://github.com/mitchellh/nixos-config\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n————————————-\n\nChapters:\n\n00:00:00 Introduction\n00:02:06 Overview of Nix ecosystem (package manager, OS, language)\n00:13:34 Flake inputs dependencies\n00:20:19 Explaining mkDarwin helper function\n00:23:40 Installation and build process\n00:30:52 Mac App Store applications + Homebrew\n00:35:30 Switching to the built derivation\n\n------------------------", "Use nix on macOS to declare victory over your configs", "ceb27674-df1e-4b2c-89f9-35346341792c", "https://www.youtube.com/watch?v=qUmZtC6ts0M", false, "qUmZtC6ts0M", 31, [], 2411, false, 5, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e041200_Use nix on macOS to declare victory over your configs.mp4", false, false, 98, ~U[2025-04-12 14:50:54Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "nix-darwin brings the nix package manager to macOS. In todays video I discuss the pros and cons of this approach, and take you through setting up a box fresh Mac in about 30 mins. \n\nMy config:\n- https://github.com/ironicbadger/nix-config\n\n\nPeople who actually know what they are doings configs:\n- https://github.com/wimpysworld/nix-config\n- https://github.com/shayne/nixos-config\n- https://github.com/mitchellh/nixos-config\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n————————————-\n\nChapters:\n\n00:00:00 Introduction\n00:02:06 Overview of Nix ecosystem (package manager, OS, language)\n00:13:34 Flake inputs dependencies\n00:20:19 Explaining mkDarwin helper function\n00:23:40 Installation and build process\n00:30:52 Mac App Store applications + Homebrew\n00:35:30 Switching to the built derivation\n\n------------------------", "Use nix on macOS to declare victory over your configs", "https://www.youtube.com/watch?v=qUmZtC6ts0M", "qUmZtC6ts0M", 31, 2411, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e041200_Use nix on macOS to declare victory over your configs.mp4", false, ~U[2025-04-12 14:50:54Z]] 19:36:03.084 [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" = ?) [31] 19:36:03.084 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-05 11:15:45Z], 31] 19:36:03.085 [debug] QUERY OK source="media_items" db=0.6ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Put two NVME SSDs into one 8x PCIe slot on *any* motherboard using the RIITOP Dual NVMe M.2 NVMe SSD to PCI-e 3.1 x8/x16 Card.\n\nNo need for expensive server grade motherboards to use a single 8x slot as two 4x slots!\n\n- https://amzn.to/4ljiYiZ\n- https://www.riitop.com/collections/msata-ssd-adapter/products/dual-nvme-pcie-adapter-riitop-m-2-nvme-ssd-to-pci-e-3-1-x8-x16-card-support-m-2-m-key-nvme-ssd-22110-2280-2260-2242-2230\n- https://serverbuilds.net\n\n------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter", "b42ad4df-8182-4eaf-9063-616bc444bbc8", "https://www.youtube.com/watch?v=PuQgkkytnps", false, "PuQgkkytnps", 31, [], 546, false, 6, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e040500_Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter.mp4", false, false, 98, ~U[2025-04-05 11:15:45Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Put two NVME SSDs into one 8x PCIe slot on *any* motherboard using the RIITOP Dual NVMe M.2 NVMe SSD to PCI-e 3.1 x8/x16 Card.\n\nNo need for expensive server grade motherboards to use a single 8x slot as two 4x slots!\n\n- https://amzn.to/4ljiYiZ\n- https://www.riitop.com/collections/msata-ssd-adapter/products/dual-nvme-pcie-adapter-riitop-m-2-nvme-ssd-to-pci-e-3-1-x8-x16-card-support-m-2-m-key-nvme-ssd-22110-2280-2260-2242-2230\n- https://serverbuilds.net\n\n------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter", "https://www.youtube.com/watch?v=PuQgkkytnps", "PuQgkkytnps", 31, 546, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e040500_Put two NVME SSDs into one 8x PCIe slot with the RIITOP Dual NVME M.2 PCIe adapter.mp4", false, ~U[2025-04-05 11:15:45Z]] 19:36:03.085 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.085 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-29 12:00:56Z], 31] 19:36:03.087 [debug] QUERY OK source="media_items" db=0.8ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Building a server with a consumer-grade AM5 chip? I've been saying it couldn't be done, but here we are doing exactly that. After weeks of wrestling with my venerable Epyc 7402 server that died and some disappointing experiments with Threadripper Pro, I'm taking the plunge with the Ryzen 9950X paired with ASUS ProArt X870E.\n\nThe real challenge? Making do with just 40 PCIe lanes versus the 128 I'm used to. It's a tight squeeze configuring the bifurcation so everything plays nicely - my Intel data center SSDs, the A4000 GPU, and various other bits. Through careful experimentation and lots of BIOS tinkering, I've managed to create a setup that handles almost everything my old Epyc box did, at half the price.\n\nPower draw sits at around 80W idle and peaks at 400W under load - surprisingly reasonable for the sheer computing power on tap. If you're interested in maxing out consumer hardware for server applications, this might just be the sweet spot. Full Proxmox configuration details coming in future videos.\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n===\n\n00:00 - Consumer hardware for a server?!\n05:56 - What is a PCIe Lane?\n08:13 - Asus ProArt X870-E Overview\n15:49 - Power Usage", "Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E", "716f2850-e0ce-4c04-a7da-99ae19b8f3e4", "https://www.youtube.com/watch?v=isqWT0rvwmc", false, "isqWT0rvwmc", 31, [], 1037, false, 7, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032900_Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E.mp4", false, false, 98, ~U[2025-03-29 12:00:56Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Building a server with a consumer-grade AM5 chip? I've been saying it couldn't be done, but here we are doing exactly that. After weeks of wrestling with my venerable Epyc 7402 server that died and some disappointing experiments with Threadripper Pro, I'm taking the plunge with the Ryzen 9950X paired with ASUS ProArt X870E.\n\nThe real challenge? Making do with just 40 PCIe lanes versus the 128 I'm used to. It's a tight squeeze configuring the bifurcation so everything plays nicely - my Intel data center SSDs, the A4000 GPU, and various other bits. Through careful experimentation and lots of BIOS tinkering, I've managed to create a setup that handles almost everything my old Epyc box did, at half the price.\n\nPower draw sits at around 80W idle and peaks at 400W under load - surprisingly reasonable for the sheer computing power on tap. If you're interested in maxing out consumer hardware for server applications, this might just be the sweet spot. Full Proxmox configuration details coming in future videos.\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n===\n\n00:00 - Consumer hardware for a server?!\n05:56 - What is a PCIe Lane?\n08:13 - Asus ProArt X870-E Overview\n15:49 - Power Usage", "Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E", "https://www.youtube.com/watch?v=isqWT0rvwmc", "isqWT0rvwmc", 31, 1037, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032900_Does it make sense as a server? Ryzen 9950X + ASUS ProArt X870E.mp4", false, ~U[2025-03-29 12:00:56Z]] 19:36:03.087 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.087 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-22 18:08:31Z], 31] 19:36:03.088 [debug] QUERY OK source="media_items" db=0.7ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In today's video I will take you through the specs and features of this awesome powerhouse of a motherboard and discuss why it's perhaps not the right choice for a new build in 2025 after all.\n\nI dive into the pros and cons of this workstation-class setup, including:\n\n- The incredible specs and expansion capabilities\n- Unexpected challenges getting Proxmox to boot\n- Persistent PCIe errors that gave me pause\n- Power consumption concerns (200W+ at idle!)\n- How it compares to newer Zen 5 chips like the 9950X\n\nWatch as I share my honest experience with this high-end but aging platform, discussing whether it still makes sense for homelab enthusiasts when newer, more efficient alternatives exist. Is this motherboard a PCIe lane junkie's dream come true, or should you save your money for something else?\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?", "9ae57c12-defe-4c6b-82c5-83d9f5efb896", "https://www.youtube.com/watch?v=yF9kg_o4Ct8", false, "yF9kg_o4Ct8", 31, [], 1441, false, 8, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032200_ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?.mp4", false, false, 98, ~U[2025-03-22 18:08:31Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "In today's video I will take you through the specs and features of this awesome powerhouse of a motherboard and discuss why it's perhaps not the right choice for a new build in 2025 after all.\n\nI dive into the pros and cons of this workstation-class setup, including:\n\n- The incredible specs and expansion capabilities\n- Unexpected challenges getting Proxmox to boot\n- Persistent PCIe errors that gave me pause\n- Power consumption concerns (200W+ at idle!)\n- How it compares to newer Zen 5 chips like the 9950X\n\nWatch as I share my honest experience with this high-end but aging platform, discussing whether it still makes sense for homelab enthusiasts when newer, more efficient alternatives exist. Is this motherboard a PCIe lane junkie's dream come true, or should you save your money for something else?\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?", "https://www.youtube.com/watch?v=yF9kg_o4Ct8", "yF9kg_o4Ct8", 31, 1441, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e032200_ASUS WRX80E Sage SE WiFi II & Threadripper Pro 5955WX Review: PCIe Lane Heaven or Proxmox Nightmare?.mp4", false, ~U[2025-03-22 18:08:31Z]] 19:36:03.088 [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" = ?) [31] 19:36:03.088 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-19 17:17:00Z], 31] 19:36:03.089 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now they went and did it. Plex made remote streaming a paid feature. Alex breaks down the latest Plex news in todays video.\n\n- https://www.plex.tv/blog/important-2025-plex-updates/\n- https://old.reddit.com/r/selfhosted/comments/1jeyz7w/important_2025_plex_updates_remote_streaming/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Major Plex news - Plex is now charging for remote streaming?!", "1b68eff3-981e-42a8-b2e3-6166c23c08c5", "https://www.youtube.com/watch?v=pt-dSeCUQI0", false, "pt-dSeCUQI0", 31, [], 743, false, 9, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031900_Major Plex news - Plex is now charging for remote streaming?!.mp4", false, false, 98, ~U[2025-03-19 17:17:00Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Now they went and did it. Plex made remote streaming a paid feature. Alex breaks down the latest Plex news in todays video.\n\n- https://www.plex.tv/blog/important-2025-plex-updates/\n- https://old.reddit.com/r/selfhosted/comments/1jeyz7w/important_2025_plex_updates_remote_streaming/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Major Plex news - Plex is now charging for remote streaming?!", "https://www.youtube.com/watch?v=pt-dSeCUQI0", "pt-dSeCUQI0", 31, 743, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031900_Major Plex news - Plex is now charging for remote streaming?!.mp4", false, ~U[2025-03-19 17:17:00Z]] 19:36:03.090 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.090 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-14 14:53:16Z], 31] 19:36:03.091 [debug] QUERY OK source="media_items" db=0.8ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I tackle a monster server build based on the AMD Threadripper Pro 5955WX - a 16-core, 32-thread CPU paired with the ridiculously feature-packed ASUS Pro WS WRX80E-SAGE SE Wi-Fi 2 motherboard. After my previous Epyc system mysteriously died (see link below), I decided to upgrade rather than waste a crisis!\n\nThis build showcases what might be the most impressive motherboard I've ever seen - weighing in at 17 pounds with seven full-bandwidth PCIe Gen 4 slots (all bifurcatable!), three M.2 slots, dual 10Gb Intel Ethernet, and more power connectors than you can shake a stick at. I discuss the unique challenges of this platform, from installing a CPU with a torque wrench to hotel room breadboarding (yes, really) and power supply compatibility checks.\n\nUnfortunately, this build journey hits a major roadblock when the massive motherboard simply won't fit in my Sliger CX4712 case! Stay tuned for part 3 when the larger case arrives.\n\n---------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n-------------\n\nTIMESTAMPS:\n00:00 - Intro & component overview\n03:45 - Hotel room breadboarding adventure\n07:30 - Power supply requirements & considerations\n09:15 - Memory compatibility checks\n11:20 - Power cable pin-out verification\n14:30 - The case size disappointment\n16:00 - Plans for part 3\n\nLINKS:\nPart 1 - Diagnosing my failed Epic system: https://youtu.be/5r4X4SIm4f4\nSliger CX4712 Case: https://www.sliger.com/products/rackmount/4u/cx4712/\n\n#ThreadripperPro #ServerBuild #Workstation #PCBuilding #TechUpgrade", "When Nothing Goes According to Plan | Threadripper PRO 5955WX server build", "357a554e-8f70-4893-b1ee-8836def47bfe", "https://www.youtube.com/watch?v=7z13WSotAX4", false, "7z13WSotAX4", 31, [], 1086, false, 10, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031400_When Nothing Goes According to Plan | Threadripper PRO 5955WX server build.mp4", false, false, 98, ~U[2025-03-14 14:53:16Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "In this video, I tackle a monster server build based on the AMD Threadripper Pro 5955WX - a 16-core, 32-thread CPU paired with the ridiculously feature-packed ASUS Pro WS WRX80E-SAGE SE Wi-Fi 2 motherboard. After my previous Epyc system mysteriously died (see link below), I decided to upgrade rather than waste a crisis!\n\nThis build showcases what might be the most impressive motherboard I've ever seen - weighing in at 17 pounds with seven full-bandwidth PCIe Gen 4 slots (all bifurcatable!), three M.2 slots, dual 10Gb Intel Ethernet, and more power connectors than you can shake a stick at. I discuss the unique challenges of this platform, from installing a CPU with a torque wrench to hotel room breadboarding (yes, really) and power supply compatibility checks.\n\nUnfortunately, this build journey hits a major roadblock when the massive motherboard simply won't fit in my Sliger CX4712 case! Stay tuned for part 3 when the larger case arrives.\n\n---------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast\n\n-------------\n\nTIMESTAMPS:\n00:00 - Intro & component overview\n03:45 - Hotel room breadboarding adventure\n07:30 - Power supply requirements & considerations\n09:15 - Memory compatibility checks\n11:20 - Power cable pin-out verification\n14:30 - The case size disappointment\n16:00 - Plans for part 3\n\nLINKS:\nPart 1 - Diagnosing my failed Epic system: https://youtu.be/5r4X4SIm4f4\nSliger CX4712 Case: https://www.sliger.com/products/rackmount/4u/cx4712/\n\n#ThreadripperPro #ServerBuild #Workstation #PCBuilding #TechUpgrade", "When Nothing Goes According to Plan | Threadripper PRO 5955WX server build", "https://www.youtube.com/watch?v=7z13WSotAX4", "7z13WSotAX4", 31, 1086, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e031400_When Nothing Goes According to Plan | Threadripper PRO 5955WX server build.mp4", false, ~U[2025-03-14 14:53:16Z]] 19:36:03.091 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.091 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-06 21:26:12Z], 31] 19:36:03.092 [debug] QUERY OK source="media_items" db=0.5ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["She's dead Jim.\n\nThe Supermicro H12SSL-i motherboard is an ex-motherboard. It has ceased to be. And in today's video, we'll talk about what's gone wrong, and how I plan to fix it.\n\nhttps://forums.servethehome.com/index.php?threads%2Fh12ssl-i-stuck-at-bmc-initiating.38043%2Fpage-5\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "EPYC FAIL - My Epyc homelab server is DEAD", "b6f725f0-6845-422b-a710-88cf033ed9b1", "https://www.youtube.com/watch?v=5r4X4SIm4f4", false, "5r4X4SIm4f4", 31, [], 1613, false, 11, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e030600_EPYC FAIL - My Epyc homelab server is DEAD.mp4", false, false, 98, ~U[2025-03-06 21:26:12Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "She's dead Jim.\n\nThe Supermicro H12SSL-i motherboard is an ex-motherboard. It has ceased to be. And in today's video, we'll talk about what's gone wrong, and how I plan to fix it.\n\nhttps://forums.servethehome.com/index.php?threads%2Fh12ssl-i-stuck-at-bmc-initiating.38043%2Fpage-5\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "EPYC FAIL - My Epyc homelab server is DEAD", "https://www.youtube.com/watch?v=5r4X4SIm4f4", "5r4X4SIm4f4", 31, 1613, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2025/s2025e030600_EPYC FAIL - My Epyc homelab server is DEAD.mp4", false, ~U[2025-03-06 21:26:12Z]] 19:36:03.092 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.093 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-27 20:47:49Z], 31] 19:36:03.093 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Is shucking a drive still worth it in 2024? The 20tb Easystore drives are $249 for Black Friday this year, but what's inside? Find out in today's video.\n\nhttps://blog.ktz.me/new-hard-drive-rituals/\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024", "196e8f10-4d23-4ddd-9a97-2fb3640f8e0f", "https://www.youtube.com/watch?v=c2mvIbY9n28", false, "c2mvIbY9n28", 31, [], 636, false, 12, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e112700_To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024.mp4", false, false, 98, ~U[2024-11-27 20:47:49Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Is shucking a drive still worth it in 2024? The 20tb Easystore drives are $249 for Black Friday this year, but what's inside? Find out in today's video.\n\nhttps://blog.ktz.me/new-hard-drive-rituals/\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024", "https://www.youtube.com/watch?v=c2mvIbY9n28", "c2mvIbY9n28", 31, 636, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e112700_To shuck or not to shuck? 20TB Easystore from BestBuy for Black Friday 2024.mp4", false, ~U[2024-11-27 20:47:49Z]] 19:36:03.094 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.094 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-11 17:00:54Z], 31] 19:36:03.095 [debug] QUERY OK source="media_items" db=0.6ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Let's bypass that big white AT&T BGW320 gateway with the WAS-110 and the 8311 community firmware!\n\n- https://pon.wiki/guides/masquerade-as-the-att-inc-bgw320-500-505-on-xgs-pon-with-the-bfw-solutions-was-110/#determine-if-youre-an-xgs-pon-subscriber\n- https://pon.wiki/guides/install-8311-community-firmware-on-the-bfw-solutions-was-110/\n- https://discord.com/servers/8311-886329492438671420\n\n----------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311", "878677fc-fb4a-4288-96c5-fecd909c870e", "https://www.youtube.com/watch?v=BluDAuSU1T4", false, "BluDAuSU1T4", 31, [], 1159, false, 13, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e101100_Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311.mp4", false, false, 98, ~U[2024-10-11 17:00:54Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Let's bypass that big white AT&T BGW320 gateway with the WAS-110 and the 8311 community firmware!\n\n- https://pon.wiki/guides/masquerade-as-the-att-inc-bgw320-500-505-on-xgs-pon-with-the-bfw-solutions-was-110/#determine-if-youre-an-xgs-pon-subscriber\n- https://pon.wiki/guides/install-8311-community-firmware-on-the-bfw-solutions-was-110/\n- https://discord.com/servers/8311-886329492438671420\n\n----------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311", "https://www.youtube.com/watch?v=BluDAuSU1T4", "BluDAuSU1T4", 31, 1159, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e101100_Easy AT&T BGW320 Gateway Bypass with UniFi UDM Pro Max via the WAS-110 SFP ONT on a stick from 8311.mp4", false, ~U[2024-10-11 17:00:54Z]] 19:36:03.095 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.095 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-24 01:15:23Z], 31] 19:36:03.096 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I break down a recent build of a Lenovo M720q box that has dual SFP+ NICs to run OPNsense for a 5gig symmetrical fiber line from AT&T that just went into Badger towers.\n\nBuild your own tiny powerhouse router with virtualised and passed through NICs with Proxmox. I'll show you the gist of how to do that in this video.\n\nLinks:\n- https://store.untrustedsource.com/\n- https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/\n\n-------------------\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense", "0d8da099-be9d-4da0-a184-e5fb401fc356", "https://www.youtube.com/watch?v=oZeRlcrVSXM", false, "oZeRlcrVSXM", 31, [], 1279, false, 14, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e092400_A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense.mp4", false, false, 98, ~U[2024-09-24 01:15:23Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "In this video I break down a recent build of a Lenovo M720q box that has dual SFP+ NICs to run OPNsense for a 5gig symmetrical fiber line from AT&T that just went into Badger towers.\n\nBuild your own tiny powerhouse router with virtualised and passed through NICs with Proxmox. I'll show you the gist of how to do that in this video.\n\nLinks:\n- https://store.untrustedsource.com/\n- https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/\n\n-------------------\n\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense", "https://www.youtube.com/watch?v=oZeRlcrVSXM", "oZeRlcrVSXM", 31, 1279, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e092400_A pretty great Homelab firewall in a tiny package - The Lenovo M720q with SFP+ for OPNsense.mp4", false, ~U[2024-09-24 01:15:23Z]] 19:36:03.096 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.097 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-28 22:37:44Z], 31] 19:36:03.097 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join me, Chris, and Brent from JB as we fly to Toronto to deploy our shiny new colo server in Canada. We'll be deploying the 45homelab HL15 server.\n\nGuest appearance from Stephen at NDLS.\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Racking and stacking an off-site backup server for Jupiter Broadcasting", "c5dbe033-1bb2-4b25-b34a-b10bef8f3261", "https://www.youtube.com/watch?v=6CZad9Qjfxo", false, "6CZad9Qjfxo", 31, [], 1678, false, 15, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e082800_Racking and stacking an off-site backup server for Jupiter Broadcasting.mp4", false, false, 98, ~U[2024-08-28 22:37:44Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Join me, Chris, and Brent from JB as we fly to Toronto to deploy our shiny new colo server in Canada. We'll be deploying the 45homelab HL15 server.\n\nGuest appearance from Stephen at NDLS.\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Racking and stacking an off-site backup server for Jupiter Broadcasting", "https://www.youtube.com/watch?v=6CZad9Qjfxo", "6CZad9Qjfxo", 31, 1678, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e082800_Racking and stacking an off-site backup server for Jupiter Broadcasting.mp4", false, ~U[2024-08-28 22:37:44Z]] 19:36:03.097 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.098 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-17 01:58:27Z], 31] 19:36:03.098 [debug] QUERY OK source="media_items" db=0.5ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Automating my garage door with Home Assistant, ESPHome and Aqara Zigbee sensors.\n\n* 3d printed hinge - https://www.printables.com/model/712140-aqara-door-sensor-garage-door-mount\n* Aqara Zigbee sensor - https://amzn.to/46UhogD\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee", "b2bc6e06-935a-472c-a1d9-5ac6ab5b9f36", "https://www.youtube.com/watch?v=zv2E8JKl3_c", false, "zv2E8JKl3_c", 31, [], 661, false, 16, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081700_I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee.mp4", false, false, 98, ~U[2024-08-17 01:58:27Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Automating my garage door with Home Assistant, ESPHome and Aqara Zigbee sensors.\n\n* 3d printed hinge - https://www.printables.com/model/712140-aqara-door-sensor-garage-door-mount\n* Aqara Zigbee sensor - https://amzn.to/46UhogD\n\n---------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee", "https://www.youtube.com/watch?v=zv2E8JKl3_c", "zv2E8JKl3_c", 31, 661, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081700_I have to stop leaving the garage door open by mistake | Home Assistant, ESPHome + Aqara Zigbee.mp4", false, ~U[2024-08-17 01:58:27Z]] 19:36:03.099 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.099 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-12 18:37:46Z], 31] 19:36:03.100 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Building a colo server for Jupiter Broadcasting using the 45Homelab HL15 server.\n\nhttps://jupiterbroadcasting.com/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Building a colo server for Jupiter Broadcasting", "1c481700-d407-4e3f-8897-3c2bbe074e17", "https://www.youtube.com/watch?v=zC_uKX2JSfc", false, "zC_uKX2JSfc", 31, [], 635, false, 17, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081200_Building a colo server for Jupiter Broadcasting.mp4", false, false, 98, ~U[2024-08-12 18:37:46Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Building a colo server for Jupiter Broadcasting using the 45Homelab HL15 server.\n\nhttps://jupiterbroadcasting.com/\n\n===\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Building a colo server for Jupiter Broadcasting", "https://www.youtube.com/watch?v=zC_uKX2JSfc", "zC_uKX2JSfc", 31, 635, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e081200_Building a colo server for Jupiter Broadcasting.mp4", false, ~U[2024-08-12 18:37:46Z]] 19:36:03.100 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [31] 19:36:03.100 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-07 11:05:45Z], 31] 19:36:03.103 [debug] QUERY OK source="media_items" db=2.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join Alex as he upgrades his Perfect Media Server to an Intel i5 13600k and a Supermicro X13-SAE-F motherboard.\n\nhttps://perfectmediaserver.com/01-overview/alexs-example-builds/\n\nA simple hardware vlog today, enjoy!\n\n----------------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Hardware VLOG | Upgrading the Perfect Media Server with an Intel i5-13600k and Supermicro X13-SAE-F", "4418460f-7e97-4c6b-b8a4-fa529a882827", "https://www.youtube.com/watch?v=1pvUYpEyeYw", false, "1pvUYpEyeYw", 31, [], 1065, false, 18, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e050700_Hardware VLOG | Upgrading the Perfect Media Server with an Intel i5-13600k and Supermicro X13-SAE-F.mp4", false, false, 98, ~U[2024-05-07 11:05:45Z], ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], "Join Alex as he upgrades his Perfect Media Server to an Intel i5 13600k and a Supermicro X13-SAE-F motherboard.\n\nhttps://perfectmediaserver.com/01-overview/alexs-example-builds/\n\nA simple hardware vlog today, enjoy!\n\n----------------------------------\n\nEnquiries: contact@ktzsystems.com\n🖥️ https://alex.ktz.me\n🦣 mastodon techhub.social/@ironicbadger \n📓 https://blog.ktz.me \n🧑🏽\u200D💻 https://github.com/ironicbadger\n🎙️ https://selfhosted.show podcast", "Hardware VLOG | Upgrading the Perfect Media Server with an Intel i5-13600k and Supermicro X13-SAE-F", "https://www.youtube.com/watch?v=1pvUYpEyeYw", "1pvUYpEyeYw", 31, 1065, false, "/downloads/chris/tubes/KTZ Systems_[UCh66aXZ_hqiT7au6Nwb8p3Q]/Season 2024/s2024e050700_Hardware VLOG | Upgrading the Perfect Media Server with an Intel i5-13600k and Supermicro X13-SAE-F.mp4", false, ~U[2024-05-07 11:05:45Z]] 19:36:03.103 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z], 31] 19:36:03.103 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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")))) [31] 19:36:03.104 [debug] QUERY OK source="media_items" db=0.1ms idle=3.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [31] 19:36:03.104 [debug] QUERY OK source="media_items" db=0.0ms idle=3.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [31] 19:36:03.105 [debug] QUERY OK source="tasks" db=0.1ms idle=1.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88146, 31, ~U[2026-01-01 01:36:03Z], ~U[2026-01-01 01:36:03Z]] 19:36:03.105 [info] {"args":{"id":31},"id":87774,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":42114198,"event":"job:stop","queue_time":916141,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:36:10.057 [info] {"args":{"id":1012065},"id":76538,"meta":{},"system_time":1767231370056967574,"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"]} 19:36:10.057 [debug] QUERY OK source="media_items" db=0.2ms idle=1710.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" = ?) [1012065] 19:36:10.057 [info] User scripts lifecyle file either not present or is empty. Skipping. 19:36:10.057 [debug] QUERY OK source="sources" db=0.1ms idle=1711.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:36:10.058 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1007.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] 19:36:10.058 [debug] QUERY OK source="media_items" db=0.1ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 19:36:10.060 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 19:36:10.060 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:36:10.060 [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 [] 19:36:10.060 [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 [] 19:36:10.061 [debug] Running yt-dlp command for action: get_downloadable_status 19:36:10.062 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:36:10.062 [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 [] 19:36:10.062 [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 [] 19:36:10.062 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/6d/be6d79bf5f5e4f75d5b65d8ba1a8b0140aaaa4dc87c716f63125e71bccc930c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:36:12.239 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/6d/be6d79bf5f5e4f75d5b65d8ba1a8b0140aaaa4dc87c716f63125e71bccc930c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 19:36:12.239 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 19:36:12.240 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":76538,"meta":{},"state":"discard","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2182736,"event":"job:exception","queue_time":196895,"attempt":20,"tags":["media_item","media_fetching","show_in_dashboard"]} 19:36:17.352 [info] {"source":"oban","duration":3697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:36:47.356 [info] {"source":"oban","duration":3866,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:37:00.855 [info] {"source":"oban","duration":167,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:37:17.361 [info] {"source":"oban","duration":3778,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:37:47.365 [info] {"source":"oban","duration":3747,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:38:00.856 [info] {"source":"oban","duration":198,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:38:17.367 [info] {"source":"oban","duration":2509,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:38:47.371 [info] {"source":"oban","duration":3334,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:39:00.857 [info] {"source":"oban","duration":133,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:39:17.376 [info] {"source":"oban","duration":4015,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:39:39.360 [info] {"args":{"id":51},"id":88144,"meta":{},"system_time":1767231579360406617,"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"]} 19:39:39.361 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [51] 19:39:39.361 [debug] QUERY OK source="settings" db=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 [] 19:39:39.361 [debug] QUERY OK source="media_profiles" db=0.4ms idle=14.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] 19:39:39.362 [debug] QUERY OK source="settings" db=0.3ms 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 [] 19:39:39.362 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 19:39:39.790 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:39:39.791 [debug] QUERY OK source="media_items" db=0.4ms idle=430.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, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:39:39.792 [debug] QUERY OK source="media_items" db=0.3ms idle=430.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [51] 19:39:39.792 [debug] QUERY OK source="tasks" db=0.1ms idle=430.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88147, 51, ~U[2026-01-01 01:39:39Z], ~U[2026-01-01 01:39:39Z]] 19:39:39.793 [info] {"args":{"id":51},"id":88144,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":432591,"event":"job:stop","queue_time":548807,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 19:39:47.381 [info] {"source":"oban","duration":3635,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:40:00.858 [info] {"source":"oban","duration":226,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:40:17.384 [info] {"source":"oban","duration":2837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:40:47.388 [info] {"source":"oban","duration":3771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:41:00.859 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:41:17.392 [info] {"source":"oban","duration":3578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:41:47.396 [info] {"source":"oban","duration":3973,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:42:00.860 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:42:17.401 [info] {"source":"oban","duration":3741,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:42:47.406 [info] {"source":"oban","duration":3708,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:43:00.861 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:43:17.408 [info] {"source":"oban","duration":2457,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:43:47.411 [info] {"source":"oban","duration":2411,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:44:00.863 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:44:17.416 [info] {"source":"oban","duration":4051,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:44:47.420 [info] {"source":"oban","duration":3421,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:45:00.863 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:45:17.424 [info] {"source":"oban","duration":3409,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:45:43.905 [info] {"args":{"id":30},"id":88141,"meta":{},"system_time":1767231943905116774,"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"]} 19:45:43.905 [debug] QUERY OK source="sources" db=0.1ms idle=558.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:43.905 [debug] QUERY OK source="settings" db=0.1ms idle=558.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:45:43.909 [debug] QUERY OK source="media_items" db=3.8ms idle=559.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")))) [30] 19:45:43.910 [debug] QUERY OK source="media_items" db=0.3ms idle=11.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 19:45:43.910 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:45:43.910 [debug] QUERY OK source="settings" db=0.0ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:45:43.910 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:45:43.915 [debug] QUERY OK source="media_items" db=2.7ms idle=2.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 19:45:43.916 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:45:43.916 [debug] Current batch of media processed. Will check again in 1000ms 19:45:43.916 [debug] QUERY OK source="settings" db=0.0ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:45:43.916 [debug] QUERY OK source="settings" db=0.0ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:45:43.916 [debug] QUERY OK source="settings" db=0.0ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:45:43.917 [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/05/b6/05b636e10980c3c047dc5ca6e9d5fe4c1b918f088d866de0174089b11f05de7c.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ec/e7/ece701077f034be9d25ccc0a269be87d0e3f8ad8bd9e72713bfb6b76a93fda7b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:45:44.917 [debug] Current batch of media processed. Will check again in 1000ms 19:45:45.919 [debug] Current batch of media processed. Will check again in 1000ms 19:45:46.919 [debug] Current batch of media processed. Will check again in 1000ms 19:45:47.429 [info] {"source":"oban","duration":4003,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:45:47.920 [debug] Current batch of media processed. Will check again in 1000ms 19:45:48.921 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1263, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", "id" => "NKPMDddHbSQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NKPMDddHbSQ", "playlist_index" => 1, "timestamp" => 1767198617, "title" => "Phoenix: A New Linux X11 Server For 2026!?!", "upload_date" => "20251231"} 19:45:48.922 [debug] QUERY OK source="sources" db=0.1ms idle=1575.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:45:48.922 [debug] QUERY OK source="sources" db=0.1ms idle=1575.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:48.923 [debug] QUERY OK source="media_items" db=1.1ms 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[2025-12-31 16:30:17Z], 30] 19:45:48.925 [debug] QUERY OK source="media_items" db=1.1ms idle=1019.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "6ffd8191-af9f-4516-9009-29608a373b3c", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 01:45:48Z], ~U[2026-01-01 01:45:48Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 19:45:48.925 [debug] QUERY OK source="sources" db=0.1ms idle=19.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:48.926 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:45:48.926 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1907515] 19:45:48.926 [debug] Current batch of media processed. Will check again in 1000ms 19:45:49.927 [debug] Current batch of media processed. Will check again in 1000ms 19:45:50.928 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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" => 1035, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", "id" => "hOUwH5A2oQs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hOUwH5A2oQs", "playlist_index" => 2, "timestamp" => 1767112220, "title" => "The MongoBleed Vulnerability Is Absolutely Insane", "upload_date" => "20251230"} 19:45:50.929 [debug] QUERY OK source="sources" db=0.1ms idle=582.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:45:50.929 [debug] QUERY OK source="sources" db=0.1ms idle=582.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:50.933 [debug] QUERY OK source="media_items" db=3.8ms idle=582.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-30 16:30:20Z], 30] 19:45:50.934 [debug] QUERY OK source="media_items" db=1.0ms idle=587.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "d34f82d1-f40b-49b5-a322-8a7377c2f2e0", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 01:45:50Z], ~U[2026-01-01 01:45:50Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 19:45:50.935 [debug] QUERY OK source="sources" db=0.1ms idle=24.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:45:50.935 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:45:50.935 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1899680] 19:45:50.935 [debug] Current batch of media processed. Will check again in 1000ms 19:45:51.936 [debug] Current batch of media processed. Will check again in 1000ms 19:45:52.937 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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" => 837, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", "id" => "ZYC6_CJMu34", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZYC6_CJMu34", "playlist_index" => 3, "timestamp" => 1767025818, "title" => "The One Thing I Hate About Linux Flatpaks", "upload_date" => "20251229"} 19:45:52.938 [debug] QUERY OK source="sources" db=0.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" IN (?)) [30] 19:45:52.938 [debug] QUERY OK source="sources" db=0.1ms idle=591.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:52.943 [debug] QUERY OK source="media_items" db=4.4ms idle=591.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-29 16:30:18Z], 30] 19:45:52.944 [debug] QUERY OK source="media_items" db=0.9ms idle=596.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "94746f09-7513-4705-ae55-d08492b19347", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 01:45:52Z], ~U[2026-01-01 01:45:52Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 19:45:52.944 [debug] QUERY OK source="sources" db=0.1ms idle=31.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:45:52.944 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:45:52.945 [debug] QUERY OK source="media_items" db=0.1ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1891625] 19:45:52.945 [debug] Current batch of media processed. Will check again in 1000ms 19:45:53.945 [debug] Current batch of media processed. Will check again in 1000ms 19:45:54.946 [debug] Current batch of media processed. Will check again in 1000ms 19:45:55.947 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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" => 1354, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", "id" => "upKM5mViQrY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=upKM5mViQrY", "playlist_index" => 4, "timestamp" => 1766939431, "title" => "It's Time To Make A Major Change On Linux", "upload_date" => "20251228"} 19:45:55.948 [debug] QUERY OK source="sources" db=0.3ms idle=1601.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:45:55.949 [debug] QUERY OK source="sources" db=0.1ms idle=1602.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:55.953 [debug] QUERY OK source="media_items" db=3.8ms idle=1602.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-28 16:30:31Z], 30] 19:45:55.954 [debug] QUERY OK source="media_items" db=1.1ms idle=1037.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "ab68738d-64d3-4276-bb9c-918d0c34eb7f", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 01:45:55Z], ~U[2026-01-01 01:45:55Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 19:45:55.954 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 19:45:55.955 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 19:45:55.955 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1883567] 19:45:55.955 [debug] Current batch of media processed. Will check again in 1000ms 19:45:56.956 [debug] Current batch of media processed. Will check again in 1000ms 19:45:57.957 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 773, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", "id" => "Aim-akCtpzM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Aim-akCtpzM", "playlist_index" => 5, "timestamp" => 1766853005, "title" => "Prepping For The Next Cloudflare Outage", "upload_date" => "20251227"} 19:45:57.958 [debug] QUERY OK source="sources" db=0.1ms idle=611.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:45:57.958 [debug] QUERY OK source="sources" db=0.1ms idle=611.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:45:57.962 [debug] QUERY OK source="media_items" db=3.8ms idle=611.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-27 16:30:05Z], 30] 19:45:57.963 [debug] QUERY OK source="media_items" db=0.9ms idle=615.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "81e1010f-6a75-4752-b3ac-65e6e7542f87", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 01:45:57Z], ~U[2026-01-01 01:45:57Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 19:45:57.963 [debug] QUERY OK source="sources" db=0.1ms 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] 19:45:57.964 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:45:57.964 [debug] QUERY OK source="media_items" db=0.1ms 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 [1875639] 19:45:57.964 [debug] Current batch of media processed. Will check again in 1000ms 19:45:58.965 [debug] Current batch of media processed. Will check again in 1000ms 19:45:59.966 [debug] Current batch of media processed. Will check again in 1000ms 19:46:00.864 [info] {"source":"oban","duration":160,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:46:00.967 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1067, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", "id" => "Db_Nl8vHs9A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "playlist_index" => 6, "timestamp" => 1766680204, "title" => "Mozilla Firefox's Future Is Going To Be Interesting", "upload_date" => "20251225"} 19:46:00.968 [debug] QUERY OK source="sources" db=0.1ms idle=1621.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:00.968 [debug] QUERY OK source="sources" db=0.0ms idle=1621.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:00.972 [debug] QUERY OK source="media_items" db=4.0ms idle=1044.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 16:30:04Z], 30] 19:46:00.973 [debug] QUERY OK source="media_items" db=0.9ms idle=108.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "f48fe9fc-dc4a-4079-815e-7a316340610f", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 01:46:00Z], ~U[2026-01-01 01:46:00Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 19:46:00.974 [debug] QUERY OK source="sources" db=0.1ms 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] 19:46:00.974 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:00.974 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1859592] 19:46:00.974 [debug] Current batch of media processed. Will check again in 1000ms 19:46:01.975 [debug] Current batch of media processed. Will check again in 1000ms 19:46:02.976 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 933, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", "id" => "WTatQTpRWPs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WTatQTpRWPs", "playlist_index" => 7, "timestamp" => 1766593822, "title" => "The Truth Of The First Linux Kernel CVE In Rust", "upload_date" => "20251224"} 19:46:02.977 [debug] QUERY OK source="sources" db=0.1ms idle=630.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:02.977 [debug] QUERY OK source="sources" db=0.1ms idle=630.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:02.981 [debug] QUERY OK source="media_items" db=3.7ms idle=631.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 16:30:22Z], 30] 19:46:02.986 [debug] QUERY OK source="media_items" db=4.3ms idle=635.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "0905972b-6fb7-457f-8a8c-57b13c52631d", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 01:46:02Z], ~U[2026-01-01 01:46:02Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 19:46:02.986 [debug] QUERY OK source="sources" db=0.1ms idle=58.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:02.986 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 19:46:02.986 [debug] QUERY OK source="media_items" db=0.1ms 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 [1851616] 19:46:02.987 [debug] Current batch of media processed. Will check again in 1000ms 19:46:03.987 [debug] Current batch of media processed. Will check again in 1000ms 19:46:04.988 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1019, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", "id" => "2-obijeo_bU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2-obijeo_bU", "playlist_index" => 8, "timestamp" => 1766507402, "title" => "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "upload_date" => "20251223"} 19:46:04.989 [debug] QUERY OK source="sources" db=0.2ms idle=642.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:04.989 [debug] QUERY OK source="sources" db=0.1ms idle=643.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:04.994 [debug] QUERY OK source="media_items" db=3.9ms idle=643.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-23 16:30:02Z], 30] 19:46:04.995 [debug] QUERY OK source="media_items" db=0.8ms idle=647.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "ca48a362-0b79-44fc-a6f1-4326721ee86f", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 01:46:04Z], ~U[2026-01-01 01:46:04Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 19:46:04.995 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:04.995 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:04.996 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1843863] 19:46:04.996 [debug] Current batch of media processed. Will check again in 1000ms 19:46:05.997 [debug] Current batch of media processed. Will check again in 1000ms 19:46:06.997 [debug] Current batch of media processed. Will check again in 1000ms 19:46:07.999 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1008, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", "id" => "Y_9BrE3JzWY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "playlist_index" => 9, "timestamp" => 1766421016, "title" => "Let Me Rant About Computers For 16 Minutes", "upload_date" => "20251222"} 19:46:07.999 [debug] QUERY OK source="sources" db=0.2ms idle=1652.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:07.999 [debug] QUERY OK source="sources" db=0.1ms idle=1653.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:08.003 [debug] QUERY OK source="media_items" db=3.9ms idle=1653.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-22 16:30:16Z], 30] 19:46:08.005 [debug] QUERY OK source="media_items" db=0.8ms idle=1069.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "033e0b8a-feda-49fc-928d-1cf62d095e9c", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 01:46:08Z], ~U[2026-01-01 01:46:08Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 19:46:08.005 [debug] QUERY OK source="sources" db=0.1ms idle=69.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:08.005 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:08.006 [debug] QUERY OK source="media_items" db=0.1ms 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 [1835824] 19:46:08.006 [debug] Current batch of media processed. Will check again in 1000ms 19:46:09.006 [debug] Current batch of media processed. Will check again in 1000ms 19:46:10.007 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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" => 1190, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", "id" => "8PTlYeLBKvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8PTlYeLBKvI", "playlist_index" => 10, "timestamp" => 1766334607, "title" => "FOSS Is Always One Maintainer From Collapsing", "upload_date" => "20251221"} 19:46:10.008 [debug] QUERY OK source="sources" db=0.3ms idle=661.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:10.009 [debug] QUERY OK source="sources" db=0.1ms idle=661.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:10.013 [debug] QUERY OK source="media_items" db=3.9ms idle=662.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-21 16:30:07Z], 30] 19:46:10.014 [debug] QUERY OK source="media_items" db=1.0ms idle=666.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "26bae476-e5c2-42c5-92b6-bacf7d554a7a", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 01:46:10Z], ~U[2026-01-01 01:46:10Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 19:46:10.014 [debug] QUERY OK source="sources" db=0.1ms idle=75.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:10.015 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:10.015 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1827811] 19:46:10.015 [debug] Current batch of media processed. Will check again in 1000ms 19:46:11.016 [debug] Current batch of media processed. Will check again in 1000ms 19:46:12.017 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1179, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", "id" => "AY5kRPexQz4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AY5kRPexQz4", "playlist_index" => 11, "timestamp" => 1766248204, "title" => "Is This A Serious Attempt At A Linux Phone?", "upload_date" => "20251220"} 19:46:12.018 [debug] QUERY OK source="sources" db=0.3ms idle=671.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 19:46:12.019 [debug] QUERY OK source="sources" db=0.1ms idle=672.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:12.023 [debug] QUERY OK source="media_items" db=3.9ms idle=672.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-20 16:30:04Z], 30] 19:46:12.024 [debug] QUERY OK source="media_items" db=1.0ms idle=676.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "de3c9da2-eb08-4dec-8a20-cdd6c5e6f8da", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 01:46:12Z], ~U[2026-01-01 01:46:12Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 19:46:12.024 [debug] QUERY OK source="sources" db=0.1ms idle=82.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:12.025 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:12.025 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1819814] 19:46:12.025 [debug] Current batch of media processed. Will check again in 1000ms 19:46:13.026 [debug] Current batch of media processed. Will check again in 1000ms 19:46:14.027 [debug] Current batch of media processed. Will check again in 1000ms 19:46:15.029 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", "id" => "3kZJrQNE3Lw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "playlist_index" => 12, "timestamp" => 1766075400, "title" => "KDE And GNOME Finally Have A Real Competitor", "upload_date" => "20251218"} 19:46:15.030 [debug] QUERY OK source="sources" db=0.1ms idle=1683.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:15.030 [debug] QUERY OK source="sources" db=0.1ms idle=1683.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:15.034 [debug] QUERY OK source="media_items" db=3.8ms idle=1683.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-18 16:30:00Z], 30] 19:46:15.035 [debug] QUERY OK source="media_items" db=0.9ms idle=1089.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "c323edd0-3968-403d-bf51-08a1245e7206", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 01:46:15Z], ~U[2026-01-01 01:46:15Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 19:46:15.036 [debug] QUERY OK source="sources" db=0.1ms idle=89.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:15.036 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:15.036 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1804241] 19:46:15.036 [debug] Current batch of media processed. Will check again in 1000ms 19:46:16.037 [debug] Current batch of media processed. Will check again in 1000ms 19:46:17.039 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 966, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", "id" => "5AePMwjV3E4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5AePMwjV3E4", "playlist_index" => 13, "timestamp" => 1765989001, "title" => "The Craziest Linux User Found My Email Address", "upload_date" => "20251217"} 19:46:17.040 [debug] QUERY OK source="sources" db=0.1ms idle=693.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:17.040 [debug] QUERY OK source="sources" db=0.1ms idle=693.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:17.044 [debug] QUERY OK source="media_items" db=3.9ms idle=693.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-17 16:30:01Z], 30] 19:46:17.058 [debug] QUERY OK source="media_items" db=13.8ms idle=697.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "9c1e5907-a189-474b-924f-6b01b5f97c80", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 01:46:17Z], ~U[2026-01-01 01:46:17Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 19:46:17.059 [debug] QUERY OK source="sources" db=0.1ms idle=109.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:17.059 [debug] QUERY OK source="media_profiles" db=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] 19:46:17.059 [debug] QUERY OK source="media_items" db=0.1ms 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 [1796109] 19:46:17.059 [debug] Current batch of media processed. Will check again in 1000ms 19:46:17.434 [info] {"source":"oban","duration":3604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:46:18.060 [debug] Current batch of media processed. Will check again in 1000ms 19:46:19.061 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1526, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", "id" => "kwXn_GSd8cA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kwXn_GSd8cA", "playlist_index" => 14, "timestamp" => 1765902617, "title" => "The Rust Linux Kernel Experiment Is Finally Over!!", "upload_date" => "20251216"} 19:46:19.062 [debug] QUERY OK source="sources" db=0.2ms idle=1111.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 19:46:19.062 [debug] QUERY OK source="sources" db=0.1ms idle=715.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:19.066 [debug] QUERY OK source="media_items" db=3.8ms idle=715.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 16:30:17Z], 30] 19:46:19.071 [debug] QUERY OK source="media_items" db=4.5ms idle=719.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "e070fffb-7437-4741-827f-7d45aef597e8", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 01:46:19Z], ~U[2026-01-01 01:46:19Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 19:46:19.071 [debug] QUERY OK source="sources" db=0.3ms idle=120.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:19.072 [debug] QUERY OK source="media_profiles" db=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] 19:46:19.072 [debug] QUERY OK source="media_items" db=0.1ms 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 [1788245] 19:46:19.072 [debug] Current batch of media processed. Will check again in 1000ms 19:46:20.073 [debug] Current batch of media processed. Will check again in 1000ms 19:46:21.074 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 808, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", "id" => "IB_0rR0imno", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IB_0rR0imno", "playlist_index" => 15, "timestamp" => 1765816207, "title" => "I Was Right Again About My Linux Home Directory", "upload_date" => "20251215"} 19:46:21.075 [debug] QUERY OK source="sources" db=0.3ms idle=728.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:21.075 [debug] QUERY OK source="sources" db=0.1ms idle=729.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:21.079 [debug] QUERY OK source="media_items" db=3.9ms idle=729.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 16:30:07Z], 30] 19:46:21.081 [debug] QUERY OK source="media_items" db=0.9ms idle=733.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "53836260-700f-467e-bb82-5d6bd7dc5a2a", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 01:46:21Z], ~U[2026-01-01 01:46:21Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 19:46:21.081 [debug] QUERY OK source="sources" db=0.1ms idle=127.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:21.081 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:21.082 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1780315] 19:46:21.082 [debug] Current batch of media processed. Will check again in 1000ms 19:46:22.082 [debug] Current batch of media processed. Will check again in 1000ms 19:46:23.083 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 981, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", "id" => "LbK_xreMSio", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LbK_xreMSio", "playlist_index" => 16, "timestamp" => 1765729806, "title" => "This Is The Kind Project I Love Linux For!!", "upload_date" => "20251214"} 19:46:23.084 [debug] QUERY OK source="sources" db=0.1ms idle=737.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:23.084 [debug] QUERY OK source="sources" db=0.0ms idle=737.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:23.088 [debug] QUERY OK source="media_items" db=3.8ms idle=737.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-14 16:30:06Z], 30] 19:46:23.089 [debug] QUERY OK source="media_items" db=0.9ms idle=741.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "b8dbb804-5405-4b4e-b49e-dc5702441e66", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 01:46:23Z], ~U[2026-01-01 01:46:23Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 19:46:23.089 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:23.090 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:23.090 [debug] QUERY OK source="media_items" db=0.1ms 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 [1772387] 19:46:23.090 [debug] Current batch of media processed. Will check again in 1000ms 19:46:24.091 [debug] Current batch of media processed. Will check again in 1000ms 19:46:25.092 [debug] Current batch of media processed. Will check again in 1000ms 19:46:26.093 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 780, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", "id" => "OEPcLRH-Eiw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "playlist_index" => 17, "timestamp" => 1765643418, "title" => "Valve, We NEED A 64 Bit Steam Client On Linux!!", "upload_date" => "20251213"} 19:46:26.094 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1747.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:26.095 [debug] QUERY OK source="sources" db=0.1ms idle=1748.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:26.098 [debug] QUERY OK source="media_items" db=3.8ms idle=1748.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-13 16:30:18Z], 30] 19:46:26.100 [debug] QUERY OK source="media_items" db=1.0ms idle=1138.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "4b3dff1d-a8ae-45a9-8559-6ca8eecd6acf", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 01:46:26Z], ~U[2026-01-01 01:46:26Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 19:46:26.100 [debug] QUERY OK source="sources" db=0.1ms idle=139.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:26.101 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:26.101 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1764416] 19:46:26.101 [debug] Current batch of media processed. Will check again in 1000ms 19:46:27.102 [debug] Current batch of media processed. Will check again in 1000ms 19:46:28.103 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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" => 2001, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", "id" => "PmjBZDGJzDQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "playlist_index" => 18, "timestamp" => 1765470611, "title" => "The Scientifically Correct Arch Linux User", "upload_date" => "20251211"} 19:46:28.104 [debug] QUERY OK source="sources" db=0.1ms idle=757.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:28.104 [debug] QUERY OK source="sources" db=0.1ms idle=757.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:28.108 [debug] QUERY OK source="media_items" db=3.7ms idle=757.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-11 16:30:11Z], 30] 19:46:28.109 [debug] QUERY OK source="media_items" db=0.8ms idle=762.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "3eef5269-676c-406c-b55e-e3f2e8b6069b", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 01:46:28Z], ~U[2026-01-01 01:46:28Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 19:46:28.109 [debug] QUERY OK source="sources" db=0.1ms idle=145.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:28.110 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:28.110 [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 [1748497] 19:46:28.110 [debug] Current batch of media processed. Will check again in 1000ms 19:46:29.111 [debug] Current batch of media processed. Will check again in 1000ms 19:46:30.113 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 894, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", "id" => "N_X7clyPE5Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N_X7clyPE5Q", "playlist_index" => 19, "timestamp" => 1765384216, "title" => "You Control The Future Of Xorg On Linux!!", "upload_date" => "20251210"} 19:46:30.114 [debug] QUERY OK source="sources" db=0.2ms idle=767.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:30.114 [debug] QUERY OK source="sources" db=0.0ms idle=767.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:30.118 [debug] QUERY OK source="media_items" db=4.0ms idle=767.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-10 16:30:16Z], 30] 19:46:30.119 [debug] QUERY OK source="media_items" db=0.8ms idle=772.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "fb9ffe5c-1400-4e6d-9295-b100d7192b9c", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 01:46:30Z], ~U[2026-01-01 01:46:30Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 19:46:30.120 [debug] QUERY OK source="sources" db=0.1ms idle=153.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:46:30.120 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:46:30.120 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1740622] 19:46:30.120 [debug] Current batch of media processed. Will check again in 1000ms 19:46:31.121 [debug] Current batch of media processed. Will check again in 1000ms 19:46:31.929 [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/05/b6/05b636e10980c3c047dc5ca6e9d5fe4c1b918f088d866de0174089b11f05de7c.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/ec/e7/ece701077f034be9d25ccc0a269be87d0e3f8ad8bd9e72713bfb6b76a93fda7b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:46:31.930 [debug] Gracefully stopping file follower 19:46:31.930 [debug] QUERY OK source="sources" db=0.2ms idle=961.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:46:31.930 [debug] QUERY OK source="sources" db=0.0ms idle=584.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.934 [debug] QUERY OK source="media_items" db=3.9ms idle=584.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-31 16:30:17Z], 30] 19:46:31.936 [debug] QUERY OK source="media_items" db=0.9ms idle=588.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "2e00853a-af25-4996-b06b-c9f9e552a737", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 19:46:31.936 [debug] QUERY OK source="sources" db=0.1ms idle=589.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.940 [debug] QUERY OK source="media_items" db=3.7ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-30 16:30:20Z], 30] 19:46:31.941 [debug] QUERY OK source="media_items" db=1.0ms idle=9.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "13491c67-1daa-4c35-9c12-bd9068a6f645", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 19:46:31.942 [debug] QUERY OK source="sources" db=0.6ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.946 [debug] QUERY OK source="media_items" db=3.7ms 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[2025-12-29 16:30:18Z], 30] 19:46:31.947 [debug] QUERY OK source="media_items" db=0.8ms idle=10.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "365b12f8-adf0-471a-a452-b7f7f392dcda", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 19:46:31.948 [debug] QUERY OK source="sources" db=0.5ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.952 [debug] QUERY OK source="media_items" db=3.6ms 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[2025-12-28 16:30:31Z], 30] 19:46:31.955 [debug] QUERY OK source="media_items" db=2.9ms idle=9.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "601b6d55-6453-42ab-9e8c-2376a21b81bd", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 19:46:31.956 [debug] QUERY OK source="sources" db=0.5ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.959 [debug] QUERY OK source="media_items" db=3.4ms idle=8.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-27 16:30:05Z], 30] 19:46:31.961 [debug] QUERY OK source="media_items" db=0.9ms idle=11.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "8818f55d-c3c5-46c2-9587-a05e441cc9d7", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 19:46:31.961 [debug] QUERY OK source="sources" db=0.5ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.965 [debug] QUERY OK source="media_items" db=3.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[2025-12-25 16:30:04Z], 30] 19:46:31.966 [debug] QUERY OK source="media_items" db=0.9ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "b6f7bb79-a57a-41b1-8e95-58645dc81771", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 19:46:31.967 [debug] QUERY OK source="sources" db=0.5ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.971 [debug] QUERY OK source="media_items" db=3.5ms 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[2025-12-24 16:30:22Z], 30] 19:46:31.972 [debug] QUERY OK source="media_items" db=1.2ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "fe1d3f5d-0401-48e0-9165-2361c34228ac", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 19:46:31.972 [debug] QUERY OK source="sources" db=0.1ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.976 [debug] QUERY OK source="media_items" db=3.4ms 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-23 16:30:02Z], 30] 19:46:31.977 [debug] QUERY OK source="media_items" db=1.2ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "dcdfb5fd-63fc-447b-91f5-b09b7980449a", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 19:46:31.978 [debug] QUERY OK source="sources" db=0.1ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.981 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-22 16:30:16Z], 30] 19:46:31.982 [debug] QUERY OK source="media_items" db=0.8ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "e1387e8a-b807-49bb-bf74-b2fbd71a8234", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 19:46:31.983 [debug] QUERY OK source="sources" db=0.4ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.986 [debug] QUERY OK source="media_items" db=3.4ms 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-21 16:30:07Z], 30] 19:46:31.988 [debug] QUERY OK source="media_items" db=0.9ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "32f75045-c4d5-48aa-a0ce-9776e1b7b31f", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 19:46:31.988 [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" = ?) [30] 19:46:31.992 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-20 16:30:04Z], 30] 19:46:31.993 [debug] QUERY OK source="media_items" db=0.9ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "28bcb6c0-565e-4ae3-a3f6-e042b59786d0", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 19:46:31.994 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:31.997 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-18 16:30:00Z], 30] 19:46:31.998 [debug] QUERY OK source="media_items" db=0.8ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "0ae5b6d9-c099-4ef9-a913-a60d98454f66", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 01:46:31Z], ~U[2026-01-01 01:46:31Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 19:46:31.999 [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" = ?) [30] 19:46:32.002 [debug] QUERY OK source="media_items" db=3.3ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-17 16:30:01Z], 30] 19:46:32.004 [debug] QUERY OK source="media_items" db=0.8ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "64b4ba1a-a0c5-4552-b159-82b81437e916", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 19:46:32.004 [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" = ?) [30] 19:46:32.008 [debug] QUERY OK source="media_items" db=3.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[2025-12-16 16:30:17Z], 30] 19:46:32.009 [debug] QUERY OK source="media_items" db=1.0ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "9c2a074e-c9eb-484c-8509-d8d9336628d7", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 19:46:32.010 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:32.013 [debug] QUERY OK source="media_items" db=3.4ms idle=6.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-15 16:30:07Z], 30] 19:46:32.014 [debug] QUERY OK source="media_items" db=0.8ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "6d71cce8-764b-489c-a38a-228a7b377f01", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 19:46:32.015 [debug] QUERY OK source="sources" db=0.4ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:32.018 [debug] QUERY OK source="media_items" db=3.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[2025-12-14 16:30:06Z], 30] 19:46:32.020 [debug] QUERY OK source="media_items" db=0.9ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "71b0f870-972d-44a4-8902-47b9df892c93", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 19:46:32.020 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 19:46:32.024 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-13 16:30:18Z], 30] 19:46:32.025 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "995b0664-3765-4663-8b10-a930978b0352", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 19:46:32.026 [debug] QUERY OK source="sources" db=0.4ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:32.029 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-11 16:30:11Z], 30] 19:46:32.030 [debug] QUERY OK source="media_items" db=0.8ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "4b35830b-99d5-4bd2-865b-cefca2b2623a", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 19:46:32.031 [debug] QUERY OK source="sources" db=0.4ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 19:46:32.034 [debug] QUERY OK source="media_items" db=3.3ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 16:30:16Z], 30] 19:46:32.036 [debug] QUERY OK source="media_items" db=0.8ms idle=8.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "d296c064-6a5c-425f-a7b3-2a1f892cfc23", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 19:46:32.036 [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" = ?) [30] 19:46:32.040 [debug] QUERY OK source="media_items" db=3.3ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 16:30:12Z], 30] 19:46:32.043 [debug] QUERY OK source="media_items" db=2.7ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "bafba033-5054-41d9-bcd0-f63154d67ffe", "https://www.youtube.com/watch?v=HAhmUhLVuAc", false, "HAhmUhLVuAc", 30, [], 836, false, 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, false, 98, ~U[2025-12-09 16:30:12Z], ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], "Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "https://www.youtube.com/watch?v=HAhmUhLVuAc", "HAhmUhLVuAc", 30, 836, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, ~U[2025-12-09 16:30:12Z]] 19:46:32.043 [debug] QUERY OK source="sources" db=0.5ms idle=8.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z], 30] 19:46:32.047 [debug] QUERY OK source="media_items" db=3.6ms idle=8.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 19:46:32.051 [debug] QUERY OK source="media_items" db=3.6ms idle=11.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] 19:46:32.052 [debug] QUERY OK source="media_items" db=0.7ms idle=11.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 19:46:32.053 [debug] QUERY OK source="tasks" db=0.4ms idle=5.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88148, 30, ~U[2026-01-01 01:46:32Z], ~U[2026-01-01 01:46:32Z]] 19:46:32.054 [info] {"args":{"id":30},"id":88141,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":48148626,"event":"job:stop","queue_time":225818,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:46:47.438 [info] {"source":"oban","duration":3757,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:47:00.865 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:47:17.442 [info] {"source":"oban","duration":3348,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:47:47.447 [info] {"source":"oban","duration":3567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:48:00.866 [info] {"source":"oban","duration":150,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:48:17.451 [info] {"source":"oban","duration":3935,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:48:47.455 [info] {"source":"oban","duration":2770,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:49:00.867 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:49:17.459 [info] {"source":"oban","duration":3324,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:49:40.224 [info] {"args":{"id":51},"id":88147,"meta":{},"system_time":1767232180224759986,"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"]} 19:49:40.225 [debug] QUERY OK source="sources" db=0.4ms idle=878.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:49:40.226 [debug] QUERY OK source="settings" db=0.3ms idle=879.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:49:40.226 [debug] QUERY OK source="media_profiles" db=0.1ms idle=879.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] 19:49:40.226 [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 [] 19:49:40.226 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 19:49:42.902 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:49:42.902 [debug] QUERY OK source="media_items" db=0.4ms idle=1555.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:49:42.903 [debug] QUERY OK source="media_items" db=0.3ms idle=1556.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [51] 19:49:42.904 [debug] QUERY OK source="tasks" db=0.1ms idle=682.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88149, 51, ~U[2026-01-01 01:49:42Z], ~U[2026-01-01 01:49:42Z]] 19:49:42.904 [info] {"args":{"id":51},"id":88147,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":2679738,"event":"job:stop","queue_time":431340,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 19:49:47.465 [info] {"source":"oban","duration":4888,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:50:00.868 [info] {"source":"oban","duration":287,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:50:17.470 [info] {"source":"oban","duration":3920,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:50:47.475 [info] {"source":"oban","duration":3961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:51:00.869 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:51:17.480 [info] {"source":"oban","duration":3867,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:51:47.484 [info] {"source":"oban","duration":2552,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:52:00.870 [info] {"source":"oban","duration":257,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:52:17.488 [info] {"source":"oban","duration":2586,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:52:47.492 [info] {"source":"oban","duration":3360,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:53:00.871 [info] {"source":"oban","duration":316,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:53:17.496 [info] {"source":"oban","duration":3338,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:53:47.501 [info] {"source":"oban","duration":3607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:54:00.872 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:54:17.505 [info] {"source":"oban","duration":3988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:54:47.511 [info] {"source":"oban","duration":4183,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:55:00.874 [info] {"source":"oban","duration":352,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:55:17.516 [info] {"source":"oban","duration":4492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 19:55:47.520 [info] {"source":"oban","duration":3649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:56:00.876 [info] {"source":"oban","duration":338,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:56:17.524 [info] {"source":"oban","duration":3785,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:56:47.527 [info] {"source":"oban","duration":2859,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:56:51.809 [info] {"args":{"id":45},"id":88134,"meta":{},"system_time":1767232611809565983,"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"]} 19:56:51.810 [debug] QUERY OK source="sources" db=0.4ms idle=463.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:56:51.810 [debug] QUERY OK source="settings" db=0.1ms idle=463.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:56:51.812 [debug] QUERY OK source="media_items" db=1.3ms idle=463.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")))) [45] 19:56:51.812 [debug] QUERY OK source="media_items" db=0.1ms idle=9.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 19:56:51.812 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:56:51.812 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:56:51.812 [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 [] 19:56:51.815 [debug] QUERY OK source="media_items" db=0.8ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [45] 19:56:51.816 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:56:51.816 [debug] Current batch of media processed. Will check again in 1000ms 19:56:51.816 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:56:51.817 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:56:51.817 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:56:51.817 [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/88/9e/889e61d1e0c00c9867a509d6f543a5acaee0dad935f8c796159f60d08329e927.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d5/bf/d5bfeb25b7a9c2f3d1859fd431fc3e88126d5b7ac5a8e4c3891666ac813abca1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:56:52.817 [debug] Current batch of media processed. Will check again in 1000ms 19:56:53.818 [debug] Current batch of media processed. Will check again in 1000ms 19:56:54.819 [debug] Current batch of media processed. Will check again in 1000ms 19:56:55.821 [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" => 1, "timestamp" => 1766623106, "title" => "When You Forget To Redact The Epstein Files", "upload_date" => "20251225"} 19:56:55.822 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=474.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:56:55.822 [debug] QUERY OK source="sources" db=0.1ms idle=475.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:56:55.823 [debug] QUERY OK source="media_items" db=1.2ms idle=475.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] 19:56:55.824 [debug] QUERY OK source="media_items" db=0.8ms idle=477.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "d11c5832-1bd7-462b-a6a6-0c0d02db96c3", "https://www.youtube.com/watch?v=6GNqGZXHXpo", false, "6GNqGZXHXpo", 45, [], 764, false, 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, false, 98, ~U[2025-12-25 00:38:26Z], ~U[2026-01-01 01:56:55Z], ~U[2026-01-01 01:56:55Z], "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", "https://www.youtube.com/watch?v=6GNqGZXHXpo", "6GNqGZXHXpo", 45, 764, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, ~U[2025-12-25 00:38:26Z]] 19:56:55.825 [debug] QUERY OK source="sources" db=0.2ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:56:55.825 [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] 19:56:55.825 [debug] QUERY OK source="media_items" db=0.1ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1854320] 19:56:55.825 [debug] Current batch of media processed. Will check again in 1000ms 19:56:56.826 [debug] Current batch of media processed. Will check again in 1000ms 19:56:57.827 [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" => 2, "timestamp" => 1765925277, "title" => "Desktop Linux Just Keeps Winning", "upload_date" => "20251216"} 19:56:57.827 [debug] QUERY OK source="sources" db=0.1ms idle=481.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:56:57.828 [debug] QUERY OK source="sources" db=0.1ms idle=481.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:56:57.829 [debug] QUERY OK source="media_items" db=1.2ms idle=481.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 22:47:57Z], 45] 19:56:57.830 [debug] QUERY OK source="media_items" db=0.7ms idle=483.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "b1ac44bf-c5e9-4367-805d-d1af83d621c2", "https://www.youtube.com/watch?v=ETI5g-dTB7Y", false, "ETI5g-dTB7Y", 45, [], 639, false, 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, false, 98, ~U[2025-12-16 22:47:57Z], ~U[2026-01-01 01:56:57Z], ~U[2026-01-01 01:56:57Z], "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", "https://www.youtube.com/watch?v=ETI5g-dTB7Y", "ETI5g-dTB7Y", 45, 639, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, ~U[2025-12-16 22:47:57Z]] 19:56:57.830 [debug] QUERY OK source="sources" db=0.1ms idle=19.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:56:57.831 [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] 19:56:57.831 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1790256] 19:56:57.831 [debug] Current batch of media processed. Will check again in 1000ms 19:56:58.832 [debug] Current batch of media processed. Will check again in 1000ms 19:56:59.833 [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" => 3, "timestamp" => 1765121144, "title" => "Jolla Phone - A Modern Linux Smart Phone", "upload_date" => "20251207"} 19:56:59.834 [debug] QUERY OK source="sources" db=0.1ms idle=487.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:56:59.834 [debug] QUERY OK source="sources" db=0.1ms idle=487.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:56:59.835 [debug] QUERY OK source="media_items" db=1.1ms idle=487.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-07 15:25:44Z], 45] 19:56:59.836 [debug] QUERY OK source="media_items" db=0.7ms idle=489.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "cfbdfe08-c177-4ab8-a702-8ed58424f6f1", "https://www.youtube.com/watch?v=0TLYLvGZUmA", false, "0TLYLvGZUmA", 45, [], 853, false, 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, false, 98, ~U[2025-12-07 15:25:44Z], ~U[2026-01-01 01:56:59Z], ~U[2026-01-01 01:56:59Z], "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", "https://www.youtube.com/watch?v=0TLYLvGZUmA", "0TLYLvGZUmA", 45, 853, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, ~U[2025-12-07 15:25:44Z]] 19:56:59.837 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:56:59.837 [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] 19:56:59.837 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1716490] 19:56:59.837 [debug] Current batch of media processed. Will check again in 1000ms 19:57:00.838 [debug] Current batch of media processed. Will check again in 1000ms 19:57:00.876 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:57:01.839 [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" => 4, "timestamp" => 1764861727, "title" => "Linux Shell Tricks For Managing Files", "upload_date" => "20251204"} 19:57:01.840 [debug] QUERY OK source="sources" db=0.2ms idle=963.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:01.840 [debug] QUERY OK source="sources" db=0.1ms idle=493.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:01.842 [debug] QUERY OK source="media_items" db=1.1ms idle=494.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 15:22:07Z], 45] 19:57:01.843 [debug] QUERY OK source="media_items" db=0.8ms idle=495.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "00e47349-8435-463d-97c1-1ab1f388dfe1", "https://www.youtube.com/watch?v=W6CVxpMBmOo", false, "W6CVxpMBmOo", 45, [], 949, false, 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, false, 98, ~U[2025-12-04 15:22:07Z], ~U[2026-01-01 01:57:01Z], ~U[2026-01-01 01:57:01Z], "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", "https://www.youtube.com/watch?v=W6CVxpMBmOo", "W6CVxpMBmOo", 45, 949, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, ~U[2025-12-04 15:22:07Z]] 19:57:01.843 [debug] QUERY OK source="sources" db=0.1ms idle=25.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:01.843 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:57:01.843 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1692255] 19:57:01.844 [debug] Current batch of media processed. Will check again in 1000ms 19:57:02.844 [debug] Current batch of media processed. Will check again in 1000ms 19:57:03.846 [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" => 5, "timestamp" => 1764256825, "title" => "The Best Desktop Linux For Windows Users", "upload_date" => "20251127"} 19:57:03.846 [debug] QUERY OK source="sources" db=0.1ms idle=499.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:03.846 [debug] QUERY OK source="sources" db=0.1ms idle=499.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:03.848 [debug] QUERY OK source="media_items" db=1.2ms idle=500.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-27 15:20:25Z], 45] 19:57:03.849 [debug] QUERY OK source="media_items" db=0.8ms idle=501.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "5bac8c99-c47f-4f0d-913d-86aa23bf5ac4", "https://www.youtube.com/watch?v=3MwJbRq3-rM", false, "3MwJbRq3-rM", 45, [], 525, false, 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, false, 98, ~U[2025-11-27 15:20:25Z], ~U[2026-01-01 01:57:03Z], ~U[2026-01-01 01:57:03Z], "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", "https://www.youtube.com/watch?v=3MwJbRq3-rM", "3MwJbRq3-rM", 45, 525, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, ~U[2025-11-27 15:20:25Z]] 19:57:03.849 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:03.849 [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] 19:57:03.850 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1637648] 19:57:03.850 [debug] Current batch of media processed. Will check again in 1000ms 19:57:04.850 [debug] Current batch of media processed. Will check again in 1000ms 19:57:05.851 [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" => 6, "timestamp" => 1763770135, "title" => "Cloudflare Breaks the Internet (again)", "upload_date" => "20251122"} 19:57:05.852 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=505.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 19:57:05.853 [debug] QUERY OK source="sources" db=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" = ?) [45] 19:57:05.854 [debug] QUERY OK source="media_items" db=1.2ms idle=506.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] 19:57:05.855 [debug] QUERY OK source="media_items" db=0.7ms idle=508.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "a55bead0-0c3b-4eb3-aa14-46127309c26f", "https://www.youtube.com/watch?v=qEkiSBxLjUU", false, "qEkiSBxLjUU", 45, [], 578, false, 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, false, 98, ~U[2025-11-22 00:08:55Z], ~U[2026-01-01 01:57:05Z], ~U[2026-01-01 01:57:05Z], "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)", "https://www.youtube.com/watch?v=qEkiSBxLjUU", "qEkiSBxLjUU", 45, 578, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, ~U[2025-11-22 00:08:55Z]] 19:57:05.855 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:05.856 [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] 19:57:05.856 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1593544] 19:57:05.856 [debug] Current batch of media processed. Will check again in 1000ms 19:57:06.857 [debug] Current batch of media processed. Will check again in 1000ms 19:57:07.858 [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" => 7, "timestamp" => 1763481259, "title" => "Based Developer Makes AirPods Open Source", "upload_date" => "20251118"} 19:57:07.860 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=512.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 19:57:07.860 [debug] QUERY OK source="sources" db=0.1ms idle=513.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:07.861 [debug] QUERY OK source="media_items" db=1.2ms idle=513.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-18 15:54:19Z], 45] 19:57:07.862 [debug] QUERY OK source="media_items" db=0.9ms idle=515.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "c2b41ca0-bdea-44f4-8afe-2efa784e6f33", "https://www.youtube.com/watch?v=m_Mr4bw8Pow", false, "m_Mr4bw8Pow", 45, [], 549, false, 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, false, 98, ~U[2025-11-18 15:54:19Z], ~U[2026-01-01 01:57:07Z], ~U[2026-01-01 01:57:07Z], "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", "https://www.youtube.com/watch?v=m_Mr4bw8Pow", "m_Mr4bw8Pow", 45, 549, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, ~U[2025-11-18 15:54:19Z]] 19:57:07.863 [debug] QUERY OK source="sources" db=0.1ms idle=36.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:07.863 [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] 19:57:07.863 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1568361] 19:57:07.863 [debug] Current batch of media processed. Will check again in 1000ms 19:57:08.864 [debug] Current batch of media processed. Will check again in 1000ms 19:57:09.865 [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" => 8, "timestamp" => 1763149170, "title" => "Can Crowd Funded Tech Support Fix a Linux Sound Bug?", "upload_date" => "20251114"} 19:57:09.866 [debug] QUERY OK source="sources" db=0.2ms idle=519.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:09.866 [debug] QUERY OK source="sources" db=0.2ms idle=519.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:09.868 [debug] QUERY OK source="media_items" db=1.1ms idle=520.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-14 19:39:30Z], 45] 19:57:09.869 [debug] QUERY OK source="media_items" db=0.7ms idle=521.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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?", "c1e2f01e-d7da-4333-b06f-c9a90fbe9933", "https://www.youtube.com/watch?v=5Wv1FlUeeME", false, "5Wv1FlUeeME", 45, [], 567, false, 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, false, 98, ~U[2025-11-14 19:39:30Z], ~U[2026-01-01 01:57:09Z], ~U[2026-01-01 01:57:09Z], "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?", "https://www.youtube.com/watch?v=5Wv1FlUeeME", "5Wv1FlUeeME", 45, 567, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, ~U[2025-11-14 19:39:30Z]] 19:57:09.869 [debug] QUERY OK source="sources" db=0.1ms idle=39.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:09.869 [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] 19:57:09.870 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1534729] 19:57:09.870 [debug] Current batch of media processed. Will check again in 1000ms 19:57:10.870 [debug] Current batch of media processed. Will check again in 1000ms 19:57:11.871 [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" => 9, "timestamp" => 1762633231, "title" => "China Is Forcing People To Watch Ads for Free Toilet Paper", "upload_date" => "20251108"} 19:57:11.872 [debug] QUERY OK source="sources" db=0.2ms idle=525.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:11.872 [debug] QUERY OK source="sources" db=0.1ms idle=525.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:11.874 [debug] QUERY OK source="media_items" db=1.2ms idle=526.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-08 20:20:31Z], 45] 19:57:11.875 [debug] QUERY OK source="media_items" db=1.6ms idle=527.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "999c9451-566a-4489-98ed-067105a21c15", "https://www.youtube.com/watch?v=c8Phszco8TY", false, "c8Phszco8TY", 45, [], 574, false, 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, false, 98, ~U[2025-11-08 20:20:31Z], ~U[2026-01-01 01:57:11Z], ~U[2026-01-01 01:57:11Z], "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", "https://www.youtube.com/watch?v=c8Phszco8TY", "c8Phszco8TY", 45, 574, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, ~U[2025-11-08 20:20:31Z]] 19:57:11.876 [debug] QUERY OK source="sources" db=0.1ms idle=42.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:11.876 [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] 19:57:11.876 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1488252] 19:57:11.876 [debug] Current batch of media processed. Will check again in 1000ms 19:57:12.877 [debug] Current batch of media processed. Will check again in 1000ms 19:57:13.843 [info] {"args":{"id":33},"id":88101,"meta":{},"system_time":1767232633843598025,"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"]} 19:57:13.843 [debug] QUERY OK source="sources" db=0.1ms idle=497.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:13.844 [debug] QUERY OK source="settings" db=0.0ms 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 [] 19:57:13.844 [debug] QUERY OK source="media_items" db=0.3ms idle=497.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] 19:57:13.844 [debug] QUERY OK source="media_items" db=0.1ms idle=7.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [33] 19:57:13.845 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:57:13.845 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:57:13.845 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:57:13.846 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [33] 19:57:13.848 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 19:57:13.848 [debug] Current batch of media processed. Will check again in 1000ms 19:57:13.848 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:57:13.849 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:57:13.849 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:57:13.849 [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/2f/d8/2fd8925c31fb6b5c6136d67fe1b798797538faf78ac79db2c56151febe097418.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/fd/f8/fdf8601b4388247b8d87c6a803cdc65f29fe7bac163305e43167a2f80faca1bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 19:57:13.878 [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" => 10, "timestamp" => 1762118751, "title" => "When the Surveillance State Falsely Accuses You", "upload_date" => "20251102"} 19:57:13.879 [debug] QUERY OK source="sources" db=0.2ms 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" IN (?)) [45] 19:57:13.879 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:13.880 [debug] QUERY OK source="media_items" db=1.1ms idle=30.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-02 21:25:51Z], 45] 19:57:13.881 [debug] QUERY OK source="media_items" db=0.7ms idle=31.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "75a6415a-7bb5-4bae-9157-5b6362c33cb4", "https://www.youtube.com/watch?v=A9h2npIn8RQ", false, "A9h2npIn8RQ", 45, [], 693, false, 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, false, 98, ~U[2025-11-02 21:25:51Z], ~U[2026-01-01 01:57:13Z], ~U[2026-01-01 01:57:13Z], "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", "https://www.youtube.com/watch?v=A9h2npIn8RQ", "A9h2npIn8RQ", 45, 693, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, ~U[2025-11-02 21:25:51Z]] 19:57:13.882 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 19:57:13.882 [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] 19:57:13.882 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1441936] 19:57:13.882 [debug] Current batch of media processed. Will check again in 1000ms 19:57:14.849 [debug] Current batch of media processed. Will check again in 1000ms 19:57:14.883 [debug] Current batch of media processed. Will check again in 1000ms 19:57:15.850 [debug] Current batch of media processed. Will check again in 1000ms 19:57:15.885 [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" => 11, "timestamp" => 1761944297, "title" => "Rust Core Utils Are Breaking Ubuntu", "upload_date" => "20251031"} 19:57:15.885 [debug] QUERY OK source="sources" db=0.1ms idle=538.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:15.885 [debug] QUERY OK source="sources" db=0.1ms idle=538.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:15.887 [debug] QUERY OK source="media_items" db=1.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[2025-10-31 20:58:17Z], 45] 19:57:15.888 [debug] QUERY OK source="media_items" db=0.8ms idle=540.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "43afcaac-264e-43bf-81d3-d11082f5a744", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", false, "5NeRkZ1A4zY", 45, [], 566, false, 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, false, 98, ~U[2025-10-31 20:58:17Z], ~U[2026-01-01 01:57:15Z], ~U[2026-01-01 01:57:15Z], "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", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "5NeRkZ1A4zY", 45, 566, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, ~U[2025-10-31 20:58:17Z]] 19:57:15.888 [debug] QUERY OK source="sources" db=0.1ms idle=48.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:15.889 [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] 19:57:15.889 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1426243] 19:57:15.889 [debug] Current batch of media processed. Will check again in 1000ms 19:57:16.851 [debug] Current batch of media processed. Will check again in 1000ms 19:57:16.889 [debug] Current batch of media processed. Will check again in 1000ms 19:57:17.531 [info] {"source":"oban","duration":3262,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:57:17.852 [debug] Current batch of media processed. Will check again in 1000ms 19:57:17.890 [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" => 12, "timestamp" => 1761177602, "title" => "Desktop Linux is Under Attack", "upload_date" => "20251023"} 19:57:17.891 [debug] QUERY OK source="sources" db=0.3ms idle=544.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:17.891 [debug] QUERY OK source="sources" db=0.2ms idle=544.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:17.893 [debug] QUERY OK source="media_items" db=1.1ms idle=545.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-23 00:00:02Z], 45] 19:57:17.894 [debug] QUERY OK source="media_items" db=0.7ms idle=361.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "c2791022-b4ce-4dd1-bf87-fc24c2af2e75", "https://www.youtube.com/watch?v=D_z_w0m4A3E", false, "D_z_w0m4A3E", 45, [], 545, false, 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, false, 98, ~U[2025-10-23 00:00:02Z], ~U[2026-01-01 01:57:17Z], ~U[2026-01-01 01:57:17Z], "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", "https://www.youtube.com/watch?v=D_z_w0m4A3E", "D_z_w0m4A3E", 45, 545, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, ~U[2025-10-23 00:00:02Z]] 19:57:17.894 [debug] QUERY OK source="sources" db=0.1ms idle=52.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:17.894 [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] 19:57:17.894 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1357518] 19:57:17.894 [debug] Current batch of media processed. Will check again in 1000ms 19:57:18.853 [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" => 1, "timestamp" => 1766507866, "title" => "Santa Claus on delivering 99% Uptime", "upload_date" => "20251223"} 19:57:18.854 [debug] QUERY OK source="sources" db=0.2ms idle=959.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:18.854 [debug] QUERY OK source="sources" db=0.1ms idle=959.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:18.854 [debug] QUERY OK source="media_items" db=0.2ms idle=959.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-23 16:37:46Z], 33] 19:57:18.855 [debug] QUERY OK source="media_items" db=0.7ms idle=959.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "ac7a3adf-6222-409e-8848-c42f70927a17", "https://www.youtube.com/watch?v=uMoql_RYVBQ", false, "uMoql_RYVBQ", 33, [], 231, false, 1, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, false, 98, ~U[2025-12-23 16:37:46Z], ~U[2026-01-01 01:57:18Z], ~U[2026-01-01 01:57:18Z], "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", "https://www.youtube.com/watch?v=uMoql_RYVBQ", "uMoql_RYVBQ", 33, 231, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, ~U[2025-12-23 16:37:46Z]] 19:57:18.855 [debug] QUERY OK source="sources" db=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" = ?) [33] 19:57:18.856 [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] 19:57:18.856 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1844510] 19:57:18.856 [debug] Current batch of media processed. Will check again in 1000ms 19:57:18.895 [debug] Current batch of media processed. Will check again in 1000ms 19:57:19.857 [debug] Current batch of media processed. Will check again in 1000ms 19:57:19.896 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 509, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", "id" => "PaPotS8GSpc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PaPotS8GSpc", "playlist_index" => 13, "timestamp" => 1759968748, "title" => "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "upload_date" => "20251009"} 19:57:19.897 [debug] QUERY OK source="sources" db=0.2ms idle=1041.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:19.897 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 19:57:19.898 [debug] QUERY OK source="media_items" db=1.2ms idle=1041.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 00:12:28Z], 45] 19:57:19.899 [debug] QUERY OK source="media_items" db=0.7ms idle=1042.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "059e82e6-ab29-485d-9cfd-4b72adb6a7fb", "https://www.youtube.com/watch?v=PaPotS8GSpc", false, "PaPotS8GSpc", 45, [], 509, false, 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, false, 98, ~U[2025-10-09 00:12:28Z], ~U[2026-01-01 01:57:19Z], ~U[2026-01-01 01:57:19Z], "In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "https://www.youtube.com/watch?v=PaPotS8GSpc", "PaPotS8GSpc", 45, 509, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, ~U[2025-10-09 00:12:28Z]] 19:57:19.900 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:19.900 [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] 19:57:19.900 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1250708] 19:57:19.900 [debug] Current batch of media processed. Will check again in 1000ms 19:57:20.858 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Look at all these NPCs 2025.\nNot an ad.\nInspired & Music by @omalleyrock Slugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "duration" => 288, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_10x engineer - Midlife crisis.mp4", "id" => "d4JL1IDupYI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=d4JL1IDupYI", "playlist_index" => 2, "timestamp" => 1763566546, "title" => "10x engineer - Midlife crisis", "upload_date" => "20251119"} 19:57:20.859 [debug] QUERY OK source="sources" db=0.1ms idle=959.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:20.859 [debug] QUERY OK source="sources" db=0.1ms idle=959.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:20.859 [debug] QUERY OK source="media_items" db=0.2ms idle=959.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 15:35:46Z], 33] 19:57:20.860 [debug] QUERY OK source="media_items" db=0.4ms idle=959.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Look at all these NPCs 2025.\nNot an ad.\nInspired & Music by @omalleyrock Slugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "10x engineer - Midlife crisis", "e629292c-9d25-4226-aec1-f8eb26baff42", "https://www.youtube.com/watch?v=d4JL1IDupYI", false, "d4JL1IDupYI", 33, [], 288, false, 2, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_10x engineer - Midlife crisis.mp4", false, false, 98, ~U[2025-11-19 15:35:46Z], ~U[2026-01-01 01:57:20Z], ~U[2026-01-01 01:57:20Z], "Look at all these NPCs 2025.\nNot an ad.\nInspired & Music by @omalleyrock Slugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "10x engineer - Midlife crisis", "https://www.youtube.com/watch?v=d4JL1IDupYI", "d4JL1IDupYI", 33, 288, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_10x engineer - Midlife crisis.mp4", false, ~U[2025-11-19 15:35:46Z]] 19:57:20.860 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:20.861 [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] 19:57:20.861 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1576479] 19:57:20.861 [debug] Current batch of media processed. Will check again in 1000ms 19:57:20.901 [debug] Current batch of media processed. Will check again in 1000ms 19:57:21.862 [debug] Current batch of media processed. Will check again in 1000ms 19:57:21.902 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 552, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", "id" => "FgqhzyDsHoE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FgqhzyDsHoE", "playlist_index" => 14, "timestamp" => 1759523151, "title" => "Google's AI Is Banning Innocent User Accounts", "upload_date" => "20251003"} 19:57:21.903 [debug] QUERY OK source="sources" db=0.2ms idle=1042.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:21.903 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:21.904 [debug] QUERY OK source="media_items" db=1.3ms idle=1042.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-03 20:25:51Z], 45] 19:57:21.906 [debug] QUERY OK source="media_items" db=0.9ms idle=1043.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "539d5644-2665-4c1c-8a84-26be21747817", "https://www.youtube.com/watch?v=FgqhzyDsHoE", false, "FgqhzyDsHoE", 45, [], 552, false, 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, false, 98, ~U[2025-10-03 20:25:51Z], ~U[2026-01-01 01:57:21Z], ~U[2026-01-01 01:57:21Z], "In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "https://www.youtube.com/watch?v=FgqhzyDsHoE", "FgqhzyDsHoE", 45, 552, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, ~U[2025-10-03 20:25:51Z]] 19:57:21.906 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 19:57:21.906 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:57:21.907 [debug] QUERY OK source="media_items" db=0.1ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1210871] 19:57:21.907 [debug] Current batch of media processed. Will check again in 1000ms 19:57:22.863 [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 VP [Corporate Edition].mp4", "id" => "3EfYy04o4J4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3EfYy04o4J4", "playlist_index" => 3, "timestamp" => 1762960024, "title" => "Interview with Dying Company's VP [Corporate Edition]", "upload_date" => "20251112"} 19:57:22.864 [debug] QUERY OK source="sources" db=0.1ms idle=957.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:22.864 [debug] QUERY OK source="sources" db=0.1ms idle=957.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:22.864 [debug] QUERY OK source="media_items" db=0.2ms idle=957.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-12 15:07:04Z], 33] 19:57:22.865 [debug] QUERY OK source="media_items" db=0.6ms idle=957.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 VP [Corporate Edition]", "e345f895-96c4-46b2-8684-52b92544ef11", "https://www.youtube.com/watch?v=3EfYy04o4J4", false, "3EfYy04o4J4", 33, [], 342, false, 3, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's VP [Corporate Edition].mp4", false, false, 98, ~U[2025-11-12 15:07:04Z], ~U[2026-01-01 01:57:22Z], ~U[2026-01-01 01:57:22Z], "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 VP [Corporate Edition]", "https://www.youtube.com/watch?v=3EfYy04o4J4", "3EfYy04o4J4", 33, 342, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's VP [Corporate Edition].mp4", false, ~U[2025-11-12 15:07:04Z]] 19:57:22.866 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:22.866 [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] 19:57:22.866 [debug] QUERY OK source="media_items" db=0.2ms 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 [1517904] 19:57:22.866 [debug] Current batch of media processed. Will check again in 1000ms 19:57:22.907 [debug] Current batch of media processed. Will check again in 1000ms 19:57:23.867 [debug] Current batch of media processed. Will check again in 1000ms 19:57:23.908 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 632, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", "id" => "LlyGD1nbq0k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LlyGD1nbq0k", "playlist_index" => 15, "timestamp" => 1758912424, "title" => "Smart Appliances Are Showing Ads Now", "upload_date" => "20250926"} 19:57:23.909 [debug] QUERY OK source="sources" db=0.2ms idle=1043.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:23.909 [debug] QUERY OK source="sources" db=0.1ms idle=1043.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:23.910 [debug] QUERY OK source="media_items" db=1.1ms idle=1043.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-26 18:47:04Z], 45] 19:57:23.925 [debug] QUERY OK source="media_items" db=14.4ms idle=1044.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "f610cd9d-61d7-4f88-9de3-9a352eef297a", "https://www.youtube.com/watch?v=LlyGD1nbq0k", false, "LlyGD1nbq0k", 45, [], 632, false, 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, false, 98, ~U[2025-09-26 18:47:04Z], ~U[2026-01-01 01:57:23Z], ~U[2026-01-01 01:57:23Z], "In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "https://www.youtube.com/watch?v=LlyGD1nbq0k", "LlyGD1nbq0k", 45, 632, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, ~U[2025-09-26 18:47:04Z]] 19:57:23.926 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 19:57:23.926 [debug] QUERY OK source="media_profiles" db=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] 19:57:23.927 [debug] QUERY OK source="media_items" db=0.2ms idle=17.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 [1156167] 19:57:23.927 [debug] Current batch of media processed. Will check again in 1000ms 19:57:24.868 [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_Every manager..mp4", "id" => "VCivp2qnhr8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VCivp2qnhr8", "playlist_index" => 4, "timestamp" => 1762358281, "title" => "Every manager.", "upload_date" => "20251105"} 19:57:24.869 [debug] QUERY OK source="sources" db=0.1ms idle=943.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:24.869 [debug] QUERY OK source="sources" db=0.2ms idle=943.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:24.870 [debug] QUERY OK source="media_items" db=0.2ms idle=943.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] 19:57:24.874 [debug] QUERY OK source="media_items" db=4.4ms idle=943.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "Every manager.", "673afa1d-bd24-445e-ac38-a43866851766", "https://www.youtube.com/watch?v=VCivp2qnhr8", false, "VCivp2qnhr8", 33, [], 290, false, 4, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Every manager..mp4", false, false, 98, ~U[2025-11-05 15:58:01Z], ~U[2026-01-01 01:57:24Z], ~U[2026-01-01 01:57:24Z], "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", "Every manager.", "https://www.youtube.com/watch?v=VCivp2qnhr8", "VCivp2qnhr8", 33, 290, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Every manager..mp4", false, ~U[2025-11-05 15:58:01Z]] 19:57:24.875 [debug] QUERY OK source="sources" db=0.2ms idle=23.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:24.875 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:57:24.875 [debug] QUERY OK source="media_items" db=0.1ms 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 [1463175] 19:57:24.875 [debug] Current batch of media processed. Will check again in 1000ms 19:57:24.927 [debug] Current batch of media processed. Will check again in 1000ms 19:57:25.876 [debug] Current batch of media processed. Will check again in 1000ms 19:57:25.928 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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" => 950, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", "id" => "zp_qHcQQyz8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zp_qHcQQyz8", "playlist_index" => 16, "timestamp" => 1758410968, "title" => "The FBI Arrested A Major Tor Node Operator", "upload_date" => "20250920"} 19:57:25.929 [debug] QUERY OK source="sources" db=0.2ms idle=1054.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:25.929 [debug] QUERY OK source="sources" db=0.1ms idle=1054.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:25.930 [debug] QUERY OK source="media_items" db=1.2ms idle=1054.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-20 23:29:28Z], 45] 19:57:25.931 [debug] QUERY OK source="media_items" db=0.8ms idle=1055.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "5b5a28b8-47c3-49fe-8fb6-90624a58409f", "https://www.youtube.com/watch?v=zp_qHcQQyz8", false, "zp_qHcQQyz8", 45, [], 950, false, 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, false, 98, ~U[2025-09-20 23:29:28Z], ~U[2026-01-01 01:57:25Z], ~U[2026-01-01 01:57:25Z], "In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "https://www.youtube.com/watch?v=zp_qHcQQyz8", "zp_qHcQQyz8", 45, 950, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, ~U[2025-09-20 23:29:28Z]] 19:57:25.932 [debug] QUERY OK source="sources" db=0.1ms idle=79.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:25.932 [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] 19:57:25.932 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1110923] 19:57:25.932 [debug] Current batch of media processed. Will check again in 1000ms 19:57:26.877 [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" => 5, "timestamp" => 1761668862, "title" => "Next-door 10x engineer (Part 3)", "upload_date" => "20251028"} 19:57:26.878 [debug] QUERY OK source="sources" db=0.2ms idle=946.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:26.878 [debug] QUERY OK source="sources" db=0.2ms idle=946.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:26.878 [debug] QUERY OK source="media_items" db=0.1ms idle=946.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-28 16:27:42Z], 33] 19:57:26.879 [debug] QUERY OK source="media_items" db=0.4ms idle=946.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "9656dd64-ef15-4e87-8271-a9ba1d822ea2", "https://www.youtube.com/watch?v=cwq2FfpTIAE", false, "cwq2FfpTIAE", 33, [], 352, false, 5, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, false, 98, ~U[2025-10-28 16:27:42Z], ~U[2026-01-01 01:57:26Z], ~U[2026-01-01 01:57:26Z], "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)", "https://www.youtube.com/watch?v=cwq2FfpTIAE", "cwq2FfpTIAE", 33, 352, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, ~U[2025-10-28 16:27:42Z]] 19:57:26.879 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:26.880 [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] 19:57:26.880 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1402023] 19:57:26.880 [debug] Current batch of media processed. Will check again in 1000ms 19:57:26.933 [debug] Current batch of media processed. Will check again in 1000ms 19:57:27.881 [debug] Current batch of media processed. Will check again in 1000ms 19:57:27.934 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 1144, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", "id" => "dw-z10LNtm0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dw-z10LNtm0", "playlist_index" => 17, "timestamp" => 1758202836, "title" => "Can Tor's Problems Be Fixed?", "upload_date" => "20250918"} 19:57:27.935 [debug] QUERY OK source="sources" db=0.1ms idle=1055.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:27.935 [debug] QUERY OK source="sources" db=0.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:27.936 [debug] QUERY OK source="media_items" db=1.1ms idle=1055.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 13:40:36Z], 45] 19:57:27.937 [debug] QUERY OK source="media_items" db=0.7ms idle=1056.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "10c8b95b-39e1-495d-9fe4-56a675971ae5", "https://www.youtube.com/watch?v=dw-z10LNtm0", false, "dw-z10LNtm0", 45, [], 1144, false, 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, false, 98, ~U[2025-09-18 13:40:36Z], ~U[2026-01-01 01:57:27Z], ~U[2026-01-01 01:57:27Z], "In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "https://www.youtube.com/watch?v=dw-z10LNtm0", "dw-z10LNtm0", 45, 1144, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, ~U[2025-09-18 13:40:36Z]] 19:57:27.938 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [45] 19:57:27.938 [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] 19:57:27.938 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1092564] 19:57:27.938 [debug] Current batch of media processed. Will check again in 1000ms 19:57:28.883 [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" => 6, "timestamp" => 1756398918, "title" => "10x Tourist", "upload_date" => "20250828"} 19:57:28.883 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=945.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:28.884 [debug] QUERY OK source="sources" db=0.1ms idle=946.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:28.884 [debug] QUERY OK source="media_items" db=0.2ms idle=946.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 16:35:18Z], 33] 19:57:28.885 [debug] QUERY OK source="media_items" db=0.5ms idle=946.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "f12be9e7-a660-4297-a88d-054db82047b3", "https://www.youtube.com/watch?v=JsB80oxyUYg", false, "JsB80oxyUYg", 33, [], 338, false, 6, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, false, 98, ~U[2025-08-28 16:35:18Z], ~U[2026-01-01 01:57:28Z], ~U[2026-01-01 01:57:28Z], "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", "https://www.youtube.com/watch?v=JsB80oxyUYg", "JsB80oxyUYg", 33, 338, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, ~U[2025-08-28 16:35:18Z]] 19:57:28.885 [debug] QUERY OK source="sources" db=0.1ms idle=29.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:28.885 [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] 19:57:28.886 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [955660] 19:57:28.886 [debug] Current batch of media processed. Will check again in 1000ms 19:57:28.939 [debug] Current batch of media processed. Will check again in 1000ms 19:57:29.886 [debug] Current batch of media processed. Will check again in 1000ms 19:57:29.940 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 1047, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", "id" => "QDDkfKPmD8c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QDDkfKPmD8c", "playlist_index" => 18, "timestamp" => 1757634127, "title" => "The Tor Project is Ignoring These Issues", "upload_date" => "20250911"} 19:57:29.941 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [45] 19:57:29.941 [debug] QUERY OK source="sources" db=0.1ms idle=1055.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:29.942 [debug] QUERY OK source="media_items" db=1.2ms idle=1055.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 23:42:07Z], 45] 19:57:29.943 [debug] QUERY OK source="media_items" db=0.8ms idle=1056.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "50abd576-4932-458b-abae-a17ab9031284", "https://www.youtube.com/watch?v=QDDkfKPmD8c", false, "QDDkfKPmD8c", 45, [], 1047, false, 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, false, 98, ~U[2025-09-11 23:42:07Z], ~U[2026-01-01 01:57:29Z], ~U[2026-01-01 01:57:29Z], "In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "https://www.youtube.com/watch?v=QDDkfKPmD8c", "QDDkfKPmD8c", 45, 1047, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, ~U[2025-09-11 23:42:07Z]] 19:57:29.944 [debug] QUERY OK source="sources" db=0.1ms idle=86.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:29.944 [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] 19:57:29.944 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1041018] 19:57:29.944 [debug] Current batch of media processed. Will check again in 1000ms 19:57:30.888 [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" => 7, "timestamp" => 1753541434, "title" => "Interview with Cloud Architect in 2025", "upload_date" => "20250726"} 19:57:30.888 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=944.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:30.889 [debug] QUERY OK source="sources" db=0.0ms idle=945.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:30.889 [debug] QUERY OK source="media_items" db=0.1ms idle=944.9ms 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] 19:57:30.892 [debug] QUERY OK source="media_items" db=2.4ms idle=945.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "8a0200dc-6848-403d-b7d7-8a3a6248edb5", "https://www.youtube.com/watch?v=xIk0_uFV-rU", false, "xIk0_uFV-rU", 33, [], 297, false, 7, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, false, 98, ~U[2025-07-26 14:50:34Z], ~U[2026-01-01 01:57:30Z], ~U[2026-01-01 01:57:30Z], "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", "https://www.youtube.com/watch?v=xIk0_uFV-rU", "xIk0_uFV-rU", 33, 297, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, ~U[2025-07-26 14:50:34Z]] 19:57:30.892 [debug] QUERY OK source="sources" db=0.1ms idle=33.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:30.892 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:57:30.893 [debug] QUERY OK source="media_items" db=0.1ms 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 [794439] 19:57:30.893 [debug] Current batch of media processed. Will check again in 1000ms 19:57:30.945 [debug] Current batch of media processed. Will check again in 1000ms 19:57:31.893 [debug] Current batch of media processed. Will check again in 1000ms 19:57:31.946 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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" => 560, "filename" => "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", "id" => "janmJ195nic", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=janmJ195nic", "playlist_index" => 19, "timestamp" => 1757375959, "title" => "CachyOS - The Blazingly Fast Linux Distro", "upload_date" => "20250908"} 19:57:31.946 [debug] QUERY OK source="sources" db=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 (?)) [45] 19:57:31.947 [debug] QUERY OK source="sources" db=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" = ?) [45] 19:57:31.948 [debug] QUERY OK source="media_items" db=1.2ms idle=1054.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-08 23:59:19Z], 45] 19:57:31.949 [debug] QUERY OK source="media_items" db=0.7ms idle=1055.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "a1c5749a-ea9c-49ba-a5d4-3bd3fadb3dd2", "https://www.youtube.com/watch?v=janmJ195nic", false, "janmJ195nic", 45, [], 560, false, 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, false, 98, ~U[2025-09-08 23:59:19Z], ~U[2026-01-01 01:57:31Z], ~U[2026-01-01 01:57:31Z], "In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "https://www.youtube.com/watch?v=janmJ195nic", "janmJ195nic", 45, 560, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, ~U[2025-09-08 23:59:19Z]] 19:57:31.949 [debug] QUERY OK source="sources" db=0.1ms idle=88.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:31.950 [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] 19:57:31.950 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1019161] 19:57:31.950 [debug] Current batch of media processed. Will check again in 1000ms 19:57:32.895 [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" => 8, "timestamp" => 1753197703, "title" => "Interview with Senior DevOps engineer 2025", "upload_date" => "20250722"} 19:57:32.895 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=945.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:32.896 [debug] QUERY OK source="sources" db=0.0ms idle=946.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:32.896 [debug] QUERY OK source="media_items" db=0.1ms idle=946.1ms 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] 19:57:32.898 [debug] QUERY OK source="media_items" db=1.2ms idle=946.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "1145efab-4042-4b70-ac6e-53724e190aef", "https://www.youtube.com/watch?v=rXPpkzdS-q4", false, "rXPpkzdS-q4", 33, [], 378, false, 8, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, false, 98, ~U[2025-07-22 15:21:43Z], ~U[2026-01-01 01:57:32Z], ~U[2026-01-01 01:57:32Z], "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", "https://www.youtube.com/watch?v=rXPpkzdS-q4", "rXPpkzdS-q4", 33, 378, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, ~U[2025-07-22 15:21:43Z]] 19:57:32.898 [debug] QUERY OK source="sources" db=0.1ms idle=35.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:32.898 [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] 19:57:32.898 [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 [774887] 19:57:32.898 [debug] Current batch of media processed. Will check again in 1000ms 19:57:32.951 [debug] Current batch of media processed. Will check again in 1000ms 19:57:33.899 [debug] Current batch of media processed. Will check again in 1000ms 19:57:33.952 [debug] Current batch of media processed. Will check again in 1000ms 19:57:34.103 [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/88/9e/889e61d1e0c00c9867a509d6f543a5acaee0dad935f8c796159f60d08329e927.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/d5/bf/d5bfeb25b7a9c2f3d1859fd431fc3e88126d5b7ac5a8e4c3891666ac813abca1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:57:34.103 [debug] Gracefully stopping file follower 19:57:34.104 [debug] QUERY OK source="sources" db=0.2ms idle=1205.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:34.104 [debug] QUERY OK source="sources" db=0.1ms idle=1205.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:34.105 [debug] QUERY OK source="media_items" db=1.2ms idle=1205.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 00:38:26Z], 45] 19:57:34.106 [debug] QUERY OK source="media_items" db=0.8ms idle=1207.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "3724c375-2730-45e5-b322-bdd54d4556ec", "https://www.youtube.com/watch?v=6GNqGZXHXpo", false, "6GNqGZXHXpo", 45, [], 764, false, 1, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, false, 98, ~U[2025-12-25 00:38:26Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=6GNqGZXHXpo", "6GNqGZXHXpo", 45, 764, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e122500_When You Forget To Redact The Epstein Files.mp4", false, ~U[2025-12-25 00:38:26Z]] 19:57:34.107 [debug] QUERY OK source="sources" db=0.1ms idle=243.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:34.108 [debug] QUERY OK source="media_items" db=1.1ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 22:47:57Z], 45] 19:57:34.109 [debug] QUERY OK source="media_items" db=0.7ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "f01280fd-5adb-421a-bf84-dfc5c219c652", "https://www.youtube.com/watch?v=ETI5g-dTB7Y", false, "ETI5g-dTB7Y", 45, [], 639, false, 2, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, false, 98, ~U[2025-12-16 22:47:57Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=ETI5g-dTB7Y", "ETI5g-dTB7Y", 45, 639, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e121600_Desktop Linux Just Keeps Winning.mp4", false, ~U[2025-12-16 22:47:57Z]] 19:57:34.109 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.110 [debug] QUERY OK source="media_items" db=0.9ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 15:25:44Z], 45] 19:57:34.111 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "238eafd8-24f5-436f-a247-e1f6d988e5f0", "https://www.youtube.com/watch?v=0TLYLvGZUmA", false, "0TLYLvGZUmA", 45, [], 853, false, 3, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, false, 98, ~U[2025-12-07 15:25:44Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=0TLYLvGZUmA", "0TLYLvGZUmA", 45, 853, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120700_Jolla Phone - A Modern Linux Smart Phone.mp4", false, ~U[2025-12-07 15:25:44Z]] 19:57:34.111 [debug] QUERY OK source="sources" db=0.2ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.112 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 15:22:07Z], 45] 19:57:34.113 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "27bc26c5-21ea-4fe5-8831-2acc4399fa0d", "https://www.youtube.com/watch?v=W6CVxpMBmOo", false, "W6CVxpMBmOo", 45, [], 949, false, 4, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, false, 98, ~U[2025-12-04 15:22:07Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=W6CVxpMBmOo", "W6CVxpMBmOo", 45, 949, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e120400_Linux Shell Tricks For Managing Files.mp4", false, ~U[2025-12-04 15:22:07Z]] 19:57:34.114 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.115 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 15:20:25Z], 45] 19:57:34.116 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "113cb711-5b67-46aa-88ed-820270f96041", "https://www.youtube.com/watch?v=3MwJbRq3-rM", false, "3MwJbRq3-rM", 45, [], 525, false, 5, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, false, 98, ~U[2025-11-27 15:20:25Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=3MwJbRq3-rM", "3MwJbRq3-rM", 45, 525, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112700_The Best Desktop Linux For Windows Users.mp4", false, ~U[2025-11-27 15:20:25Z]] 19:57:34.116 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.117 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-22 00:08:55Z], 45] 19:57:34.118 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "ee706d54-249f-43c5-a5d2-4daa4e399418", "https://www.youtube.com/watch?v=qEkiSBxLjUU", false, "qEkiSBxLjUU", 45, [], 578, false, 6, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, false, 98, ~U[2025-11-22 00:08:55Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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)", "https://www.youtube.com/watch?v=qEkiSBxLjUU", "qEkiSBxLjUU", 45, 578, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e112200_Cloudflare Breaks the Internet (again).mp4", false, ~U[2025-11-22 00:08:55Z]] 19:57:34.118 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.119 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-18 15:54:19Z], 45] 19:57:34.120 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "7a48cb65-efd8-4818-94b4-1f6e0aeb9c52", "https://www.youtube.com/watch?v=m_Mr4bw8Pow", false, "m_Mr4bw8Pow", 45, [], 549, false, 7, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, false, 98, ~U[2025-11-18 15:54:19Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=m_Mr4bw8Pow", "m_Mr4bw8Pow", 45, 549, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111800_Based Developer Makes AirPods Open Source.mp4", false, ~U[2025-11-18 15:54:19Z]] 19:57:34.120 [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" = ?) [45] 19:57:34.121 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-14 19:39:30Z], 45] 19:57:34.122 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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?", "be5cdc97-aafb-4795-be3d-03ecc8ed1841", "https://www.youtube.com/watch?v=5Wv1FlUeeME", false, "5Wv1FlUeeME", 45, [], 567, false, 8, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, false, 98, ~U[2025-11-14 19:39:30Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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?", "https://www.youtube.com/watch?v=5Wv1FlUeeME", "5Wv1FlUeeME", 45, 567, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e111400_Can Crowd Funded Tech Support Fix a Linux Sound Bug?.mp4", false, ~U[2025-11-14 19:39:30Z]] 19:57:34.123 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.124 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-08 20:20:31Z], 45] 19:57:34.125 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "3c28bb94-4248-44e9-acdd-78323db9c0a9", "https://www.youtube.com/watch?v=c8Phszco8TY", false, "c8Phszco8TY", 45, [], 574, false, 9, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, false, 98, ~U[2025-11-08 20:20:31Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=c8Phszco8TY", "c8Phszco8TY", 45, 574, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110800_China Is Forcing People To Watch Ads for Free Toilet Paper.mp4", false, ~U[2025-11-08 20:20:31Z]] 19:57:34.125 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.126 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-02 21:25:51Z], 45] 19:57:34.127 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "873151c6-0a98-4067-ad12-0d16bd18510b", "https://www.youtube.com/watch?v=A9h2npIn8RQ", false, "A9h2npIn8RQ", 45, [], 693, false, 10, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, false, 98, ~U[2025-11-02 21:25:51Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=A9h2npIn8RQ", "A9h2npIn8RQ", 45, 693, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e110200_When the Surveillance State Falsely Accuses You.mp4", false, ~U[2025-11-02 21:25:51Z]] 19:57:34.127 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.128 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 20:58:17Z], 45] 19:57:34.129 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "bea811db-7875-4c7e-a6f2-319b2f2c1ef1", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", false, "5NeRkZ1A4zY", 45, [], 566, false, 11, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, false, 98, ~U[2025-10-31 20:58:17Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=5NeRkZ1A4zY", "5NeRkZ1A4zY", 45, 566, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e103100_Rust Core Utils Are Breaking Ubuntu.mp4", false, ~U[2025-10-31 20:58:17Z]] 19:57:34.129 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.130 [debug] QUERY OK source="media_items" db=0.9ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-23 00:00:02Z], 45] 19:57:34.143 [debug] QUERY OK source="media_items" db=12.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "74bb9df0-2beb-4880-8ae8-ac5bf3146cd3", "https://www.youtube.com/watch?v=D_z_w0m4A3E", false, "D_z_w0m4A3E", 45, [], 545, false, 12, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, false, 98, ~U[2025-10-23 00:00:02Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "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", "https://www.youtube.com/watch?v=D_z_w0m4A3E", "D_z_w0m4A3E", 45, 545, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e102300_Desktop Linux is Under Attack.mp4", false, ~U[2025-10-23 00:00:02Z]] 19:57:34.144 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 19:57:34.145 [debug] QUERY OK source="media_items" db=1.1ms idle=15.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-09 00:12:28Z], 45] 19:57:34.146 [debug] QUERY OK source="media_items" db=0.7ms idle=16.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "9f50cc33-77ba-43fb-81d7-93d9aedc1a59", "https://www.youtube.com/watch?v=PaPotS8GSpc", false, "PaPotS8GSpc", 45, [], 509, false, 13, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, false, 98, ~U[2025-10-09 00:12:28Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how a battery fire at South Korea's National Information Resources Service wiped out the governments cloud storage as well as several other popular services in South Korea. Services like email and Kakao Talk have been restored, but there was no backup for the governments cloud storage and up to 858 TB of data may be permanently lost.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Data Center Fire Wipes Out The Korean Government's Cloud Storage", "https://www.youtube.com/watch?v=PaPotS8GSpc", "PaPotS8GSpc", 45, 509, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100900_Data Center Fire Wipes Out The Korean Government's Cloud Storage.mp4", false, ~U[2025-10-09 00:12:28Z]] 19:57:34.147 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [45] 19:57:34.148 [debug] QUERY OK source="media_items" db=1.0ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-03 20:25:51Z], 45] 19:57:34.149 [debug] QUERY OK source="media_items" db=0.6ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "9afdea58-70a8-49fb-93dc-d89c63fe3302", "https://www.youtube.com/watch?v=FgqhzyDsHoE", false, "FgqhzyDsHoE", 45, [], 552, false, 14, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, false, 98, ~U[2025-10-03 20:25:51Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how people have been getting their Google accounts deleted for photos synced to Google drive and images generated with AI that falsely get get flagged for CSAM or other policy violations. Google has a history of not re-instating disabled accounts even have law enforcement investigations conclude there was no crime committed.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google's AI Is Banning Innocent User Accounts", "https://www.youtube.com/watch?v=FgqhzyDsHoE", "FgqhzyDsHoE", 45, 552, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e100300_Google's AI Is Banning Innocent User Accounts.mp4", false, ~U[2025-10-03 20:25:51Z]] 19:57:34.149 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.150 [debug] QUERY OK source="media_items" db=0.9ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-26 18:47:04Z], 45] 19:57:34.151 [debug] QUERY OK source="media_items" db=0.6ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "c52b60d7-cc3c-4894-9e99-68aa5db5bc1a", "https://www.youtube.com/watch?v=LlyGD1nbq0k", false, "LlyGD1nbq0k", 45, [], 632, false, 15, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, false, 98, ~U[2025-09-26 18:47:04Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how the screens being added to new cars and home appliances are being used to serve online ads to the owners of those vehicles and appliances.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Smart Appliances Are Showing Ads Now", "https://www.youtube.com/watch?v=LlyGD1nbq0k", "LlyGD1nbq0k", 45, 632, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092600_Smart Appliances Are Showing Ads Now.mp4", false, ~U[2025-09-26 18:47:04Z]] 19:57:34.151 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.152 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-20 23:29:28Z], 45] 19:57:34.153 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "b5efe2a3-ec3a-40e9-b99b-2533aebb5ca1", "https://www.youtube.com/watch?v=zp_qHcQQyz8", false, "zp_qHcQQyz8", 45, [], 950, false, 16, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, false, 98, ~U[2025-09-20 23:29:28Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how Conrad Rockenhaus the founder of GreyPony IT a company that ran several high bandwidth Tor exit nodes allegedly refused a deal to work with the FBI and what happened as a result. \n\nPublic court records associated with this case\nhttps://www.courtlistener.com/docket/69848942/united-states-v-rockenhaus/\n\nAdrienne Rockenhaus's account of what's happened\nhttps://rockenhaus.com/press-kit/\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", "The FBI Arrested A Major Tor Node Operator", "https://www.youtube.com/watch?v=zp_qHcQQyz8", "zp_qHcQQyz8", 45, 950, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e092000_The FBI Arrested A Major Tor Node Operator.mp4", false, ~U[2025-09-20 23:29:28Z]] 19:57:34.153 [debug] QUERY OK source="sources" db=0.2ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.154 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 13:40:36Z], 45] 19:57:34.155 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "ee82929c-bdd4-406d-a36d-ef19c204640b", "https://www.youtube.com/watch?v=dw-z10LNtm0", false, "dw-z10LNtm0", 45, [], 1144, false, 17, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, false, 98, ~U[2025-09-18 13:40:36Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I show you how to customize Librewolf to browse the Tor network while spoofing your HTTP user agent in a similar way to the old Tor browser. I also show you how to validate the BGP security of guard nodes in your Tor circuit to avoid having your IP address revealed. These modifications are not approved by the Tor project and you use them at your own risk.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor's Problems Be Fixed?", "https://www.youtube.com/watch?v=dw-z10LNtm0", "dw-z10LNtm0", 45, 1144, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091800_Can Tor's Problems Be Fixed?.mp4", false, ~U[2025-09-18 13:40:36Z]] 19:57:34.155 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.157 [debug] QUERY OK source="media_items" db=1.0ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 23:42:07Z], 45] 19:57:34.157 [debug] QUERY OK source="media_items" db=0.6ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "16725410-c31d-4587-b2c0-e9fcc818b797", "https://www.youtube.com/watch?v=QDDkfKPmD8c", false, "QDDkfKPmD8c", 45, [], 1047, false, 18, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, false, 98, ~U[2025-09-11 23:42:07Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how the Tor project has been ignoring and or slow to fix major issues in both the Tor browser and network including the weakness to BGP hijacking attacks with the current route selection algorithm, the slow fix of the security slider, and the removal of http header spoofing to make every Tor user look like their on a Windows computer.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 Tor Project is Ignoring These Issues", "https://www.youtube.com/watch?v=QDDkfKPmD8c", "QDDkfKPmD8c", 45, 1047, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e091100_The Tor Project is Ignoring These Issues.mp4", false, ~U[2025-09-11 23:42:07Z]] 19:57:34.158 [debug] QUERY OK source="sources" db=0.2ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.159 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-08 23:59:19Z], 45] 19:57:34.160 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "d7b5f5f2-0c46-42d6-8d94-cbc4d8bf2c4f", "https://www.youtube.com/watch?v=janmJ195nic", false, "janmJ195nic", 45, [], 560, false, 19, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, false, 98, ~U[2025-09-08 23:59:19Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how CachyOS is optimizing the Linux kernel and their packages for performance on an Arch based distribution, similarly to how Clear Linux was optimized to give users well tuned user friendly Linux experience out of the box.\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.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 - The Blazingly Fast Linux Distro", "https://www.youtube.com/watch?v=janmJ195nic", "janmJ195nic", 45, 560, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e090800_CachyOS - The Blazingly Fast Linux Distro.mp4", false, ~U[2025-09-08 23:59:19Z]] 19:57:34.160 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [45] 19:57:34.161 [debug] QUERY OK source="media_items" db=0.9ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-29 00:28:31Z], 45] 19:57:34.162 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I discuss how Google is restricting peoples ability to side load applications on their devices, and closing down the once open software ecosystem that was android, making it more similar to Apples \"walled garden\"\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google is Locking Down Android", "1c041250-2bf6-4222-b81c-cb3e20714522", "https://www.youtube.com/watch?v=L1S0SiBuJN8", false, "L1S0SiBuJN8", 45, [], 537, false, 20, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e082900_Google is Locking Down Android.mp4", false, false, 98, ~U[2025-08-29 00:28:31Z], ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], "In this video I discuss how Google is restricting peoples ability to side load applications on their devices, and closing down the once open software ecosystem that was android, making it more similar to Apples \"walled garden\"\n\nMy merch is available at\nhttps://based.win/\n\nSubscribe to me on Odysee.com\nhttps://odysee.com/@AlphaNerd:8\n\n₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿\n\nMonero\n45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436\n\nBitcoin\nbc1qdc32p8035ztyvtm8t97gdcyhc26jg6cte9qc8n\n\nEthereum\n0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079\n\nLitecoin\nMBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF", "Google is Locking Down Android", "https://www.youtube.com/watch?v=L1S0SiBuJN8", "L1S0SiBuJN8", 45, 537, false, "/downloads/chris/tubes/Mental Outlaw_[UC7YOGHUfC1Tb6E4pudI9STA]/Season 2025/s2025e082900_Google is Locking Down Android.mp4", false, ~U[2025-08-29 00:28:31Z]] 19:57:34.162 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z], 45] 19:57:34.163 [debug] QUERY OK source="media_items" db=1.0ms 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 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 19:57:34.164 [debug] QUERY OK source="media_items" db=1.0ms idle=3.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")))) [45] 19:57:34.165 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [45] 19:57:34.166 [debug] QUERY OK source="tasks" db=0.1ms idle=2.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88150, 45, ~U[2026-01-01 01:57:34Z], ~U[2026-01-01 01:57:34Z]] 19:57:34.166 [info] {"args":{"id":45},"id":88134,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":42356487,"event":"job:stop","queue_time":126790,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:57:34.900 [debug] Current batch of media processed. Will check again in 1000ms 19:57:35.902 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "0.1x engineer [Office edition]\nhttps://linkgraph.net/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" => 9, "timestamp" => 1752261350, "title" => "0.1x engineer [Office Edition]", "upload_date" => "20250711"} 19:57:35.902 [debug] QUERY OK source="sources" db=0.3ms idle=555.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:35.903 [debug] QUERY OK source="sources" db=0.1ms idle=556.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:35.903 [debug] QUERY OK source="media_items" db=0.2ms idle=556.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-11 19:15:50Z], 33] 19:57:35.904 [debug] QUERY OK source="media_items" db=0.5ms idle=556.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["0.1x engineer [Office edition]\nhttps://linkgraph.net/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]", "88a6b40e-9b70-4087-8430-3f343a63b3e8", "https://www.youtube.com/watch?v=i7aQig-wjYA", false, "i7aQig-wjYA", 33, [], 522, false, 9, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, false, 98, ~U[2025-07-11 19:15:50Z], ~U[2026-01-01 01:57:35Z], ~U[2026-01-01 01:57:35Z], "0.1x engineer [Office edition]\nhttps://linkgraph.net/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]", "https://www.youtube.com/watch?v=i7aQig-wjYA", "i7aQig-wjYA", 33, 522, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, ~U[2025-07-11 19:15:50Z]] 19:57:35.904 [debug] QUERY OK source="sources" db=0.1ms idle=38.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:35.904 [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] 19:57:35.905 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [722681] 19:57:35.905 [debug] Current batch of media processed. Will check again in 1000ms 19:57:36.905 [debug] Current batch of media processed. Will check again in 1000ms 19:57:37.906 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "0.1x engineer\nhttps://linkgraph.net/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" => 10, "timestamp" => 1750177210, "title" => "Interview with 0.1x engineer [Home Edition]", "upload_date" => "20250617"} 19:57:37.907 [debug] QUERY OK source="sources" db=0.2ms idle=560.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:37.907 [debug] QUERY OK source="sources" db=0.2ms idle=560.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:37.907 [debug] QUERY OK source="media_items" db=0.2ms idle=561.0ms 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] 19:57:37.909 [debug] QUERY OK source="media_items" db=1.2ms idle=561.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["0.1x engineer\nhttps://linkgraph.net/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]", "f49512c5-9f66-454a-b115-7a61ca9a8afd", "https://www.youtube.com/watch?v=hwG89HH0VcM", false, "hwG89HH0VcM", 33, [], 286, false, 10, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, false, 98, ~U[2025-06-17 16:20:10Z], ~U[2026-01-01 01:57:37Z], ~U[2026-01-01 01:57:37Z], "0.1x engineer\nhttps://linkgraph.net/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]", "https://www.youtube.com/watch?v=hwG89HH0VcM", "hwG89HH0VcM", 33, 286, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, ~U[2025-06-17 16:20:10Z]] 19:57:37.909 [debug] QUERY OK source="sources" db=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" = ?) [33] 19:57:37.910 [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] 19:57:37.910 [debug] QUERY OK source="media_items" db=0.2ms 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 [597386] 19:57:37.910 [debug] Current batch of media processed. Will check again in 1000ms 19:57:38.911 [debug] Current batch of media processed. Will check again in 1000ms 19:57:39.912 [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" => 11, "timestamp" => 1744731397, "title" => "Interview with King of AI Coding (Replit CEO - $1.2B)", "upload_date" => "20250415"} 19:57:39.912 [debug] QUERY OK source="sources" db=0.1ms idle=566.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:39.913 [debug] QUERY OK source="sources" db=0.1ms idle=566.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:39.913 [debug] QUERY OK source="media_items" db=0.2ms idle=566.8ms 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] 19:57:39.914 [debug] QUERY OK source="media_items" db=0.8ms idle=567.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "cc450232-d325-4383-8864-9bdfa91836e4", "https://www.youtube.com/watch?v=r45-w5MKOlE", false, "r45-w5MKOlE", 33, [], 572, false, 11, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", false, false, 98, ~U[2025-04-15 15:36:37Z], ~U[2026-01-01 01:57:39Z], ~U[2026-01-01 01:57:39Z], "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)", "https://www.youtube.com/watch?v=r45-w5MKOlE", "r45-w5MKOlE", 33, 572, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", false, ~U[2025-04-15 15:36:37Z]] 19:57:39.915 [debug] QUERY OK source="sources" db=0.1ms idle=43.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:39.915 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:57:39.915 [debug] QUERY OK source="media_items" db=0.2ms 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 [367296] 19:57:39.915 [debug] Current batch of media processed. Will check again in 1000ms 19:57:40.916 [debug] Current batch of media processed. Will check again in 1000ms 19:57:41.918 [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" => 12, "timestamp" => 1744128888, "title" => "Senior Engineer tries Vibe Coding.", "upload_date" => "20250408"} 19:57:41.918 [debug] QUERY OK source="sources" db=0.2ms idle=571.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:41.919 [debug] QUERY OK source="sources" db=0.1ms idle=572.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:41.919 [debug] QUERY OK source="media_items" db=0.1ms idle=572.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-08 16:14:48Z], 33] 19:57:41.920 [debug] QUERY OK source="media_items" db=0.5ms idle=572.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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.", "4b666b1b-041c-4db8-9a0d-f61420a26442", "https://www.youtube.com/watch?v=_2C2CNmK7dQ", false, "_2C2CNmK7dQ", 33, [], 346, false, 12, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, false, 98, ~U[2025-04-08 16:14:48Z], ~U[2026-01-01 01:57:41Z], ~U[2026-01-01 01:57:41Z], "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.", "https://www.youtube.com/watch?v=_2C2CNmK7dQ", "_2C2CNmK7dQ", 33, 346, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, ~U[2025-04-08 16:14:48Z]] 19:57:41.920 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [33] 19:57:41.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] 19:57:41.921 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [367297] 19:57:41.921 [debug] Current batch of media processed. Will check again in 1000ms 19:57:42.922 [debug] Current batch of media processed. Will check again in 1000ms 19:57:43.922 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "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", "duration" => 356, "filename" => "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", "id" => "JeNS1ZNHQs8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JeNS1ZNHQs8", "playlist_index" => 13, "timestamp" => 1743521880, "title" => "Interview with Vibe Coder in 2025", "upload_date" => "20250401"} 19:57:43.923 [debug] QUERY OK source="sources" db=0.2ms idle=575.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:43.923 [debug] QUERY OK source="sources" db=0.1ms idle=576.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:43.923 [debug] QUERY OK source="media_items" db=0.1ms idle=576.7ms 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] 19:57:43.924 [debug] QUERY OK source="media_items" db=0.5ms idle=577.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "269cde12-9594-47c5-84dd-5df3798ceca3", "https://www.youtube.com/watch?v=JeNS1ZNHQs8", false, "JeNS1ZNHQs8", 33, [], 356, false, 13, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", false, false, 98, ~U[2025-04-01 15:38:00Z], ~U[2026-01-01 01:57:43Z], ~U[2026-01-01 01:57:43Z], "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", "https://www.youtube.com/watch?v=JeNS1ZNHQs8", "JeNS1ZNHQs8", 33, 356, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", false, ~U[2025-04-01 15:38:00Z]] 19:57:43.924 [debug] QUERY OK source="sources" db=0.1ms idle=46.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:57:43.925 [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] 19:57:43.925 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [367298] 19:57:43.925 [debug] Current batch of media processed. Will check again in 1000ms 19:57:44.926 [debug] Current batch of media processed. Will check again in 1000ms 19:57:45.887 [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/2f/d8/2fd8925c31fb6b5c6136d67fe1b798797538faf78ac79db2c56151febe097418.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/fd/f8/fdf8601b4388247b8d87c6a803cdc65f29fe7bac163305e43167a2f80faca1bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 19:57:45.887 [debug] Gracefully stopping file follower 19:57:45.888 [debug] QUERY OK source="sources" db=0.1ms idle=541.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 19:57:45.888 [debug] QUERY OK source="sources" db=0.0ms idle=541.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:57:45.888 [debug] QUERY OK source="media_items" db=0.2ms idle=542.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] 19:57:45.889 [debug] QUERY OK source="media_items" db=0.4ms idle=542.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "7d37988f-b821-47e9-934b-109db706777c", "https://www.youtube.com/watch?v=uMoql_RYVBQ", false, "uMoql_RYVBQ", 33, [], 231, false, 1, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, false, 98, ~U[2025-12-23 16:37:46Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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", "https://www.youtube.com/watch?v=uMoql_RYVBQ", "uMoql_RYVBQ", 33, 231, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e122300_Santa Claus on delivering 99% Uptime.mp4", false, ~U[2025-12-23 16:37:46Z]] 19:57:45.889 [debug] QUERY OK source="sources" db=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" = ?) [33] 19:57:45.890 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-19 15:35:46Z], 33] 19:57:45.890 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Look at all these NPCs 2025.\nNot an ad.\nInspired & Music by @omalleyrock Slugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "10x engineer - Midlife crisis", "cc4ef919-dad0-46f0-9345-507705497017", "https://www.youtube.com/watch?v=d4JL1IDupYI", false, "d4JL1IDupYI", 33, [], 288, false, 2, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_10x engineer - Midlife crisis.mp4", false, false, 98, ~U[2025-11-19 15:35:46Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "Look at all these NPCs 2025.\nNot an ad.\nInspired & Music by @omalleyrock Slugs - https://www.youtube.com/watch?v=wYrNjPGgAAA", "10x engineer - Midlife crisis", "https://www.youtube.com/watch?v=d4JL1IDupYI", "d4JL1IDupYI", 33, 288, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111900_10x engineer - Midlife crisis.mp4", false, ~U[2025-11-19 15:35:46Z]] 19:57:45.890 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.891 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-12 15:07:04Z], 33] 19:57:45.893 [debug] QUERY OK source="media_items" db=1.6ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 VP [Corporate Edition]", "3cd34054-79cd-4241-a0a5-d43819e5cdb9", "https://www.youtube.com/watch?v=3EfYy04o4J4", false, "3EfYy04o4J4", 33, [], 342, false, 3, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's VP [Corporate Edition].mp4", false, false, 98, ~U[2025-11-12 15:07:04Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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 VP [Corporate Edition]", "https://www.youtube.com/watch?v=3EfYy04o4J4", "3EfYy04o4J4", 33, 342, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e111200_Interview with Dying Company's VP [Corporate Edition].mp4", false, ~U[2025-11-12 15:07:04Z]] 19:57:45.893 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.893 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-05 15:58:01Z], 33] 19:57:45.894 [debug] QUERY OK source="media_items" db=0.6ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "Every manager.", "5712f29a-d0be-44be-9f0e-4c0cff62aff8", "https://www.youtube.com/watch?v=VCivp2qnhr8", false, "VCivp2qnhr8", 33, [], 290, false, 4, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Every manager..mp4", false, false, 98, ~U[2025-11-05 15:58:01Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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", "Every manager.", "https://www.youtube.com/watch?v=VCivp2qnhr8", "VCivp2qnhr8", 33, 290, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e110500_Every manager..mp4", false, ~U[2025-11-05 15:58:01Z]] 19:57:45.894 [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" = ?) [33] 19:57:45.895 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-28 16:27:42Z], 33] 19:57:45.895 [debug] QUERY OK source="media_items" db=0.5ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "9645f27a-38fe-4a68-adf4-e27d0353fd02", "https://www.youtube.com/watch?v=cwq2FfpTIAE", false, "cwq2FfpTIAE", 33, [], 352, false, 5, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, false, 98, ~U[2025-10-28 16:27:42Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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)", "https://www.youtube.com/watch?v=cwq2FfpTIAE", "cwq2FfpTIAE", 33, 352, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e102800_Next-door 10x engineer (Part 3).mp4", false, ~U[2025-10-28 16:27:42Z]] 19:57:45.895 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.896 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-28 16:35:18Z], 33] 19:57:45.897 [debug] QUERY OK source="media_items" db=0.6ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "10ebe537-310d-457d-bc4b-9acfa55c0b18", "https://www.youtube.com/watch?v=JsB80oxyUYg", false, "JsB80oxyUYg", 33, [], 338, false, 6, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, false, 98, ~U[2025-08-28 16:35:18Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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", "https://www.youtube.com/watch?v=JsB80oxyUYg", "JsB80oxyUYg", 33, 338, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e082800_10x Tourist.mp4", false, ~U[2025-08-28 16:35:18Z]] 19:57:45.897 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.897 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-26 14:50:34Z], 33] 19:57:45.898 [debug] QUERY OK source="media_items" db=0.6ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "d36b2660-f7f5-4008-8613-c809feb7532f", "https://www.youtube.com/watch?v=xIk0_uFV-rU", false, "xIk0_uFV-rU", 33, [], 297, false, 7, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, false, 98, ~U[2025-07-26 14:50:34Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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", "https://www.youtube.com/watch?v=xIk0_uFV-rU", "xIk0_uFV-rU", 33, 297, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072600_Interview with Cloud Architect in 2025.mp4", false, ~U[2025-07-26 14:50:34Z]] 19:57:45.898 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.898 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-22 15:21:43Z], 33] 19:57:45.899 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "a37f349a-49ee-48a8-9c5d-9a54bdb537f4", "https://www.youtube.com/watch?v=rXPpkzdS-q4", false, "rXPpkzdS-q4", 33, [], 378, false, 8, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, false, 98, ~U[2025-07-22 15:21:43Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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", "https://www.youtube.com/watch?v=rXPpkzdS-q4", "rXPpkzdS-q4", 33, 378, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e072200_Interview with Senior DevOps engineer 2025.mp4", false, ~U[2025-07-22 15:21:43Z]] 19:57:45.899 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.900 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-11 19:15:50Z], 33] 19:57:45.900 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["0.1x engineer [Office edition]\nhttps://linkgraph.net/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]", "a9d1d415-62c0-4ee4-bf4f-1e5a14636426", "https://www.youtube.com/watch?v=i7aQig-wjYA", false, "i7aQig-wjYA", 33, [], 522, false, 9, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, false, 98, ~U[2025-07-11 19:15:50Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "0.1x engineer [Office edition]\nhttps://linkgraph.net/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]", "https://www.youtube.com/watch?v=i7aQig-wjYA", "i7aQig-wjYA", 33, 522, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e071100_0.1x engineer [Office Edition].mp4", false, ~U[2025-07-11 19:15:50Z]] 19:57:45.901 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.901 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms 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] 19:57:45.919 [debug] QUERY OK source="media_items" db=17.9ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["0.1x engineer\nhttps://linkgraph.net/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]", "22ca0fb9-23af-4d70-a0b9-a597a0f27af5", "https://www.youtube.com/watch?v=hwG89HH0VcM", false, "hwG89HH0VcM", 33, [], 286, false, 10, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, false, 98, ~U[2025-06-17 16:20:10Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "0.1x engineer\nhttps://linkgraph.net/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]", "https://www.youtube.com/watch?v=hwG89HH0VcM", "hwG89HH0VcM", 33, 286, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e061700_Interview with 0.1x engineer [Home Edition].mp4", false, ~U[2025-06-17 16:20:10Z]] 19:57:45.920 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [33] 19:57:45.920 [debug] QUERY OK source="media_items" db=0.2ms 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[2025-04-15 15:36:37Z], 33] 19:57:45.925 [debug] QUERY OK source="media_items" db=4.0ms idle=19.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "b7b2d8cd-5e47-4c22-8c96-1ea7f08d82f0", "https://www.youtube.com/watch?v=r45-w5MKOlE", false, "r45-w5MKOlE", 33, [], 572, false, 11, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", false, false, 98, ~U[2025-04-15 15:36:37Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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)", "https://www.youtube.com/watch?v=r45-w5MKOlE", "r45-w5MKOlE", 33, 572, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e041500_Interview with King of AI Coding (Replit CEO - $1.2B).mp4", false, ~U[2025-04-15 15:36:37Z]] 19:57:45.925 [debug] QUERY OK source="sources" db=0.2ms idle=23.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.925 [debug] QUERY OK source="media_items" db=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[2025-04-08 16:14:48Z], 33] 19:57:45.926 [debug] QUERY OK source="media_items" db=0.5ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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.", "eecda6bd-3833-47d9-ad4a-b0be556f93c2", "https://www.youtube.com/watch?v=_2C2CNmK7dQ", false, "_2C2CNmK7dQ", 33, [], 346, false, 12, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, false, 98, ~U[2025-04-08 16:14:48Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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.", "https://www.youtube.com/watch?v=_2C2CNmK7dQ", "_2C2CNmK7dQ", 33, 346, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040800_Senior Engineer tries Vibe Coding..mp4", false, ~U[2025-04-08 16:14:48Z]] 19:57:45.926 [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" = ?) [33] 19:57:45.927 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-01 15:38:00Z], 33] 19:57:45.927 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "4371893b-3086-4b1c-ab6d-685ae30a020c", "https://www.youtube.com/watch?v=JeNS1ZNHQs8", false, "JeNS1ZNHQs8", 33, [], 356, false, 13, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", false, false, 98, ~U[2025-04-01 15:38:00Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "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", "https://www.youtube.com/watch?v=JeNS1ZNHQs8", "JeNS1ZNHQs8", 33, 356, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e040100_Interview with Vibe Coder in 2025.mp4", false, ~U[2025-04-01 15:38:00Z]] 19:57:45.928 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [33] 19:57:45.928 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-11 15:00:06Z], 33] 19:57:45.928 [debug] QUERY OK source="media_items" db=0.5ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hiring in 2025\nhttps://linkgraph.net\n\nHow to get a tech job in 2025 interview with Kai Lentit and various - aired on © The Tech Job.\n\nSWE\nsoftware engineeers\ntech job market\nTech jobs \nBig tech layoffs\nbig tech hiring\nStartup tech job interview\nbig tech job interview\ncracking the code interview\njavascript\nFull stack job requirements\n\n\n#techjobs \n#startup\n#softwareengineer", "Hiring in 2026 vs 2021", "94bdfd7c-9a52-4bd7-a205-c15c9ad2d91d", "https://www.youtube.com/watch?v=4R4uTrA1vQ8", false, "4R4uTrA1vQ8", 33, [], 345, false, 14, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e031100_Hiring in 2026 vs 2021.mp4", false, false, 98, ~U[2025-03-11 15:00:06Z], ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], "Hiring in 2025\nhttps://linkgraph.net\n\nHow to get a tech job in 2025 interview with Kai Lentit and various - aired on © The Tech Job.\n\nSWE\nsoftware engineeers\ntech job market\nTech jobs \nBig tech layoffs\nbig tech hiring\nStartup tech job interview\nbig tech job interview\ncracking the code interview\njavascript\nFull stack job requirements\n\n\n#techjobs \n#startup\n#softwareengineer", "Hiring in 2026 vs 2021", "https://www.youtube.com/watch?v=4R4uTrA1vQ8", "4R4uTrA1vQ8", 33, 345, false, "/downloads/chris/tubes/Programmers are also human_[UCi8C7TNs2ohrc6hnRQ5Sn2w]/Season 2025/s2025e031100_Hiring in 2026 vs 2021.mp4", false, ~U[2025-03-11 15:00:06Z]] 19:57:45.929 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z], 33] 19:57:45.929 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 19:57:45.929 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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")))) [33] 19:57:45.930 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [33] 19:57:45.931 [debug] QUERY OK source="tasks" db=0.1ms idle=1.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88151, 33, ~U[2026-01-01 01:57:45Z], ~U[2026-01-01 01:57:45Z]] 19:57:45.931 [info] {"args":{"id":33},"id":88101,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":32087523,"event":"job:stop","queue_time":196034,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 19:57:47.536 [info] {"source":"oban","duration":3564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 19:58:00.878 [info] {"source":"oban","duration":346,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:58:17.540 [info] {"source":"oban","duration":3689,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:58:47.544 [info] {"source":"oban","duration":3214,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:59:00.879 [info] {"source":"oban","duration":189,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 19:59:17.548 [info] {"source":"oban","duration":2491,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:59:43.086 [info] {"args":{"id":51},"id":88149,"meta":{},"system_time":1767232783085921085,"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"]} 19:59:43.086 [debug] QUERY OK source="sources" db=0.4ms idle=1739.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 19:59:43.086 [debug] QUERY OK source="settings" db=0.1ms idle=1740.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:59:43.087 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1009.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] 19:59:43.087 [debug] QUERY OK source="settings" db=0.3ms 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 [] 19:59:43.087 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 19:59:43.179 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:59:43.180 [debug] QUERY OK source="media_items" db=0.4ms idle=94.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 19:59:43.181 [debug] QUERY OK source="media_items" db=0.2ms idle=94.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] 19:59:43.182 [debug] QUERY OK source="tasks" db=0.1ms idle=94.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88152, 51, ~U[2026-01-01 01:59:43Z], ~U[2026-01-01 01:59:43Z]] 19:59:43.182 [info] {"args":{"id":51},"id":88149,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":96148,"event":"job:stop","queue_time":180868,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 19:59:47.553 [info] {"source":"oban","duration":3911,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:00:00.880 [info] {"source":"oban","duration":1248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[88153]} 20:00:00.887 [info] {"args":{},"id":88153,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"system_time":1767232800886960352,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:00.908 [debug] QUERY OK source="media_items" db=21.4ms idle=540.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((NOT (m0."media_filepath" IS NULL) AND NOT (m0."prevent_download" = 1)) AND NOT (NOT (m0."media_redownloaded_at" IS NULL))) AND IFNULL(redownload_delay_days, 0) > 0 AND DATE('now', '-' || redownload_delay_days || ' day') > DATE(uploaded_at) AND DATE(media_downloaded_at, '-' || redownload_delay_days || ' day') < DATE(uploaded_at) ) [] 20:00:00.908 [info] Redownloading 4 media items 20:00:00.912 [debug] QUERY OK source="tasks" db=0.2ms idle=24.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88154, 1899036, ~U[2026-01-01 02:00:00Z], ~U[2026-01-01 02:00:00Z]] 20:00:00.917 [debug] QUERY OK source="tasks" db=0.9ms idle=4.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88155, 1899680, ~U[2026-01-01 02:00:00Z], ~U[2026-01-01 02:00:00Z]] 20:00:00.918 [info] {"args":{"id":1899036,"quality_upgrade?":true},"id":88154,"meta":{},"system_time":1767232800918870426,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:00.919 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1899036] 20:00:00.919 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:00:00.919 [debug] QUERY OK source="sources" db=0.1ms idle=0.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:00:00.919 [debug] QUERY OK source="tasks" db=0.3ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88156, 1901240, ~U[2026-01-01 02:00:00Z], ~U[2026-01-01 02:00:00Z]] 20:00:00.920 [info] {"args":{},"id":88153,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","duration":33017,"event":"job:stop","queue_time":886431,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:00.921 [debug] QUERY OK source="media_metadata" db=0.1ms idle=1.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1899036] 20:00:00.921 [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] 20:00:00.921 [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 [] 20:00:00.922 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:00.922 [debug] Running yt-dlp command for action: get_downloadable_status 20:00:00.923 [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 [] 20:00:00.923 [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 [] 20:00:00.923 [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 [] 20:00:00.923 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=9hoTL0GP2uQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/1d/ca1d60bd6325614c0699eefa6ee06696486ceab4876ecb11963b743130134465.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:00.925 [info] {"args":{"id":1899680,"quality_upgrade?":true},"id":88155,"meta":{},"system_time":1767232800925827484,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:00.926 [debug] QUERY OK source="media_items" db=0.0ms idle=3.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1899680] 20:00:00.926 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:00:00.926 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:00:00.927 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1899680] 20:00:00.927 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:00:00.927 [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 [] 20:00:00.927 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:00.927 [debug] Running yt-dlp command for action: get_downloadable_status 20:00:00.928 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:00.928 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:00.928 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:00.929 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hOUwH5A2oQs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/8c/af8c2ddfb9a72cba7f1262b594adedd1ccf7b1d96045f1bc00cdf41d7dbc168d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:04.321 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=9hoTL0GP2uQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/1d/ca1d60bd6325614c0699eefa6ee06696486ceab4876ecb11963b743130134465.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:00:04.321 [debug] Running yt-dlp command for action: download 20:00:04.322 [debug] QUERY OK source="settings" db=0.1ms idle=1975.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:04.322 [debug] QUERY OK source="settings" db=0.0ms idle=1975.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:04.322 [debug] QUERY OK source="settings" db=0.0ms idle=1975.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:04.322 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=9hoTL0GP2uQ --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c1/0f/c10fe56722f5db01dd9f8826378c0cbab4fa04e5f35fb20e3326f7f41867d4c0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:04.384 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hOUwH5A2oQs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/8c/af8c2ddfb9a72cba7f1262b594adedd1ccf7b1d96045f1bc00cdf41d7dbc168d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:00:04.385 [debug] Running yt-dlp command for action: download 20:00:04.385 [debug] QUERY OK source="settings" db=0.1ms idle=275.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:04.385 [debug] QUERY OK source="settings" db=0.0ms idle=63.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:04.385 [debug] QUERY OK source="settings" db=0.0ms idle=63.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:04.385 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hOUwH5A2oQs --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b4/91/b4917ecf6b038626986f1dc4002303bc39897ab98a0ecea811ab9890a03a5a42.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:17.558 [info] {"source":"oban","duration":3670,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:00:21.852 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=9hoTL0GP2uQ --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c1/0f/c10fe56722f5db01dd9f8826378c0cbab4fa04e5f35fb20e3326f7f41867d4c0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: Replacing existing file "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123099_'cut' - cut sections from lines of text - Video Man Pages-thumb.jpg" 20:00:21.870 [debug] Running yt-dlp command for action: download_thumbnail 20:00:21.871 [debug] QUERY OK source="settings" db=0.1ms idle=1524.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:21.871 [debug] QUERY OK source="settings" db=0.1ms idle=1525.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:21.871 [debug] QUERY OK source="settings" db=0.1ms idle=1525.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:21.872 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=9hoTL0GP2uQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1899036/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/80/8e/808e5ccef0bfd2e6a0d04df80e442a576c82e23b2703d98c9545fc5004c06dfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:25.679 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=9hoTL0GP2uQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1899036/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/80/8e/808e5ccef0bfd2e6a0d04df80e442a576c82e23b2703d98c9545fc5004c06dfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: [youtube] 9hoTL0GP2uQ: Some tv client https formats have been skipped as they are missing a url. YouTube may have enabled the SABR-only or Server-Side Ad Placement experiment for the current session. See https://github.com/yt-dlp/yt-dlp/issues/12482 for more details WARNING: [youtube] 9hoTL0GP2uQ: Some web client https formats have been skipped as they are missing a url. YouTube is forcing SABR streaming for this client. See https://github.com/yt-dlp/yt-dlp/issues/12482 for more details 20:00:25.680 [debug] QUERY OK source="media_items" db=0.9ms idle=545.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "predicted_media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:00:21Z], "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123099_'cut' - cut sections from lines of text - Video Man Pages.mp4", ~U[2026-01-01 02:00:25Z], 1899036] 20:00:25.690 [debug] QUERY OK source="media_items" db=9.2ms idle=334.4ms UPDATE "media_items" SET "media_redownloaded_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:00:25Z], ~U[2026-01-01 02:00:25Z], 1899036] 20:00:25.690 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:00:25.690 [info] {"args":{"id":1899036,"quality_upgrade?":true},"id":88154,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":24771452,"event":"job:stop","queue_time":917454,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:25.697 [info] {"args":{"id":1901240,"quality_upgrade?":true},"id":88156,"meta":{},"system_time":1767232825696972769,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:25.697 [debug] QUERY OK source="media_items" db=0.1ms idle=350.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" = ?) [1901240] 20:00:25.697 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:00:25.697 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [55] 20:00:25.698 [debug] QUERY OK source="media_metadata" db=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" = ?) [1901240] 20:00:25.698 [debug] QUERY OK source="media_profiles" db=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] 20:00:25.699 [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 [] 20:00:25.699 [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 [] 20:00:25.699 [debug] Running yt-dlp command for action: get_downloadable_status 20:00:25.700 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:25.700 [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 [] 20:00:25.700 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:25.700 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rCEf7p3FRTM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/63/86/63862dcf9d90a7ef358d05fdea03c8b9644fd439ccee58ca7c31a99a57125e63.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:29.069 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rCEf7p3FRTM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/63/86/63862dcf9d90a7ef358d05fdea03c8b9644fd439ccee58ca7c31a99a57125e63.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:00:29.069 [debug] Running yt-dlp command for action: download 20:00:29.069 [debug] QUERY OK source="settings" db=0.1ms idle=1723.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:29.069 [debug] QUERY OK source="settings" db=0.0ms idle=1723.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:29.070 [debug] QUERY OK source="settings" db=0.0ms idle=1723.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:29.070 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rCEf7p3FRTM --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/bigboxSWE_[UC5--wS0Ljbin1TjWQX6eafA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/bigboxSWE_[UC5--wS0Ljbin1TjWQX6eafA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/71/be/71be1a6b3b2228868aaca44be4c4dcb8a26b1de8f6170a59f024c5b99e1e8abe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:31.966 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hOUwH5A2oQs --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b4/91/b4917ecf6b038626986f1dc4002303bc39897ab98a0ecea811ab9890a03a5a42.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: Replacing existing file "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123099_The MongoBleed Vulnerability Is Absolutely Insane-thumb.jpg" 20:00:31.981 [debug] Running yt-dlp command for action: download_thumbnail 20:00:31.982 [debug] QUERY OK source="settings" db=0.1ms idle=1635.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:31.982 [debug] QUERY OK source="settings" db=0.0ms idle=1635.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:31.982 [debug] QUERY OK source="settings" db=0.0ms idle=1635.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:31.982 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hOUwH5A2oQs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1899680/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4b/88/4b8832840e545ba0b8fbfd1972e5b55c2b241866cfee99a94b93db6ed7d8e834.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:35.256 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=hOUwH5A2oQs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1899680/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4b/88/4b8832840e545ba0b8fbfd1972e5b55c2b241866cfee99a94b93db6ed7d8e834.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:00:35.258 [debug] QUERY OK source="media_items" db=1.3ms idle=1910.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "duration_seconds" = ?, "predicted_media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:00:31Z], 1009, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123099_The MongoBleed Vulnerability Is Absolutely Insane.mp4", ~U[2026-01-01 02:00:35Z], 1899680] 20:00:35.259 [debug] QUERY OK source="media_items" db=1.0ms idle=1912.3ms UPDATE "media_items" SET "media_redownloaded_at" = ?, "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:00:35Z], 132268268, ~U[2026-01-01 02:00:35Z], 1899680] 20:00:35.260 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:00:35.260 [info] {"args":{"id":1899680,"quality_upgrade?":true},"id":88155,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":34334236,"event":"job:stop","queue_time":925428,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:42.260 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rCEf7p3FRTM --no-simulate --no-progress --force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/chris/tubes/bigboxSWE_[UC5--wS0Ljbin1TjWQX6eafA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --sponsorblock-remove sponsor,intro,outro --output /downloads/chris/tubes/bigboxSWE_[UC5--wS0Ljbin1TjWQX6eafA]/Season %(upload_date>%Y)S/s%(upload_date>%Y)Se%(upload_date>%m%d)S99_%(title)S.%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/71/be/71be1a6b3b2228868aaca44be4c4dcb8a26b1de8f6170a59f024c5b99e1e8abe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: WARNING: Replacing existing file "/downloads/chris/tubes/bigboxSWE_[UC5--wS0Ljbin1TjWQX6eafA]/Season 2025/s2025e123099_THE WORST YEAR IN PROGRAMMING HISTORY-thumb.jpg" 20:00:42.275 [debug] Running yt-dlp command for action: download_thumbnail 20:00:42.276 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1929.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:42.276 [debug] QUERY OK source="settings" db=0.0ms idle=1929.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:42.276 [debug] QUERY OK source="settings" db=0.0ms idle=1929.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:00:42.276 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rCEf7p3FRTM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1901240/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/04/8b/048bd172d415be2a546349ada91d22d830e75be4e47325274843782e27c25ee1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:00:45.745 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rCEf7p3FRTM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1901240/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/04/8b/048bd172d415be2a546349ada91d22d830e75be4e47325274843782e27c25ee1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:00:45.747 [debug] QUERY OK source="media_items" db=1.5ms idle=1399.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "duration_seconds" = ?, "predicted_media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:00:42Z], 284, "/downloads/chris/tubes/bigboxSWE_[UC5--wS0Ljbin1TjWQX6eafA]/Season 2025/s2025e123099_THE WORST YEAR IN PROGRAMMING HISTORY.mp4", ~U[2026-01-01 02:00:45Z], 1901240] 20:00:45.748 [debug] QUERY OK source="media_items" db=0.4ms idle=593.5ms UPDATE "media_items" SET "media_redownloaded_at" = ?, "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:00:45Z], 27626482, ~U[2026-01-01 02:00:45Z], 1901240] 20:00:45.748 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:00:45.748 [info] {"args":{"id":1901240,"quality_upgrade?":true},"id":88156,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":20051275,"event":"job:stop","queue_time":25696430,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:00:47.562 [info] {"source":"oban","duration":3544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:01:00.881 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:01:11.191 [info] {"args":{"id":1206401},"id":88115,"meta":{},"system_time":1767232871190933911,"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"]} 20:01:11.191 [debug] QUERY OK source="media_items" db=0.1ms idle=1844.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" = ?) [1206401] 20:01:11.191 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:01:11.191 [debug] QUERY OK source="sources" db=0.1ms idle=1009.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:01:11.191 [debug] QUERY OK source="media_profiles" db=0.1ms idle=845.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:01:11.192 [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 [1206401] 20:01:11.194 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1206401] 20:01:11.194 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:01:11.194 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:01:11.194 [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 [] 20:01:11.195 [debug] Running yt-dlp command for action: get_downloadable_status 20:01:11.195 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:01:11.195 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:01:11.195 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:01:11.195 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=vq1L8IAy00g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/65/27/6527bd07dabe32518ef07fdc7acb099349e122cdd37c72dfba56e799d685b25e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:01:13.171 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=vq1L8IAy00g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/65/27/6527bd07dabe32518ef07fdc7acb099349e122cdd37c72dfba56e799d685b25e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] vq1L8IAy00g: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:01:13.171 [error] yt-dlp download error for media item #1206401: "ERROR: [youtube] vq1L8IAy00g: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:01:13.172 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1206401},"id":88115,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":1980819,"event":"job:exception","queue_time":235458,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:01:17.566 [info] {"source":"oban","duration":3850,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:01:47.571 [info] {"source":"oban","duration":3960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:02:00.882 [info] {"source":"oban","duration":129,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:02:17.577 [info] {"source":"oban","duration":4341,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:02:47.581 [info] {"source":"oban","duration":3766,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:00.883 [info] {"source":"oban","duration":156,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:03:17.584 [info] {"source":"oban","duration":2199,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:21.367 [info] {"args":{"id":37},"id":88137,"meta":{},"system_time":1767233001367369023,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:03:21.367 [debug] QUERY OK source="sources" db=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" = ?) [37] 20:03:21.368 [debug] QUERY OK source="settings" db=0.3ms idle=21.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:03:21.371 [debug] QUERY OK source="media_items" db=2.5ms idle=21.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")))) [37] 20:03:21.371 [debug] QUERY OK source="media_items" db=0.4ms idle=9.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 20:03:21.371 [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] 20:03:21.372 [debug] QUERY OK source="settings" db=0.0ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:03:21.372 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:03:21.374 [debug] QUERY OK source="media_items" db=1.7ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [37] 20:03:21.376 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:03:21.377 [debug] Current batch of media processed. Will check again in 1000ms 20:03:21.377 [debug] QUERY OK source="settings" db=0.0ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:03:21.377 [debug] QUERY OK source="settings" db=0.0ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:03:21.377 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:03:21.377 [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/df/d3/dfd3f6a88f3306948d26da085a9ad6e9a2402e0d29f45cd90fa5b3fade772730.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/53/e4/53e4f52b0430d40ef148f76299c642c8d019d0747685cc39b27f0dd21838b181.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:03:22.377 [debug] Current batch of media processed. Will check again in 1000ms 20:03:23.378 [debug] Current batch of media processed. Will check again in 1000ms 20:03:24.379 [debug] Current batch of media processed. Will check again in 1000ms 20:03:25.380 [debug] Current batch of media processed. Will check again in 1000ms 20:03:26.381 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "duration" => 4028, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", "id" => "5Hs4Ikwphe0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5Hs4Ikwphe0", "playlist_index" => 1, "timestamp" => 1767182410, "title" => "We gave $50,000 to OSS! Merry Christmas | The Standup", "upload_date" => "20251231"} 20:03:26.381 [debug] QUERY OK source="sources" db=0.1ms idle=1035.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:26.382 [debug] QUERY OK source="sources" db=0.1ms idle=1035.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:26.384 [debug] QUERY OK source="media_items" db=2.0ms idle=1035.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-31 12:00:10Z], 37] 20:03:26.385 [debug] QUERY OK source="media_items" db=0.7ms idle=1019.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "79fbea6f-89e1-48b8-85f4-56ce3df9d922", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", false, "5Hs4Ikwphe0", 37, [], 4028, false, 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, false, 98, ~U[2025-12-31 12:00:10Z], ~U[2026-01-01 02:03:26Z], ~U[2026-01-01 02:03:26Z], "Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", "5Hs4Ikwphe0", 37, 4028, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, ~U[2025-12-31 12:00:10Z]] 20:03:26.385 [debug] QUERY OK source="sources" db=0.1ms idle=19.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:26.386 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:26.386 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1906392] 20:03:26.386 [debug] Current batch of media processed. Will check again in 1000ms 20:03:27.387 [debug] Current batch of media processed. Will check again in 1000ms 20:03:28.388 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "", "duration" => 359, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", "id" => "GwJrZBe8JX4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GwJrZBe8JX4", "playlist_index" => 2, "timestamp" => 1767013145, "title" => "They did what to SQL?", "upload_date" => "20251229"} 20:03:28.388 [debug] QUERY OK source="sources" db=0.1ms idle=42.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:28.389 [debug] QUERY OK source="sources" db=0.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:28.391 [debug] QUERY OK source="media_items" db=1.9ms idle=42.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-29 12:59:05Z], 37] 20:03:28.391 [debug] QUERY OK source="media_items" db=0.5ms idle=44.7ms INSERT INTO "media_items" AS m0 ("title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["They did what to SQL?", "758ccc26-2ec0-40b3-870f-cf243daceab4", "https://www.youtube.com/watch?v=GwJrZBe8JX4", false, "GwJrZBe8JX4", 37, [], 359, false, 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, false, 98, ~U[2025-12-29 12:59:05Z], ~U[2026-01-01 02:03:28Z], ~U[2026-01-01 02:03:28Z], "", "They did what to SQL?", "https://www.youtube.com/watch?v=GwJrZBe8JX4", "GwJrZBe8JX4", 37, 359, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, ~U[2025-12-29 12:59:05Z]] 20:03:28.392 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:28.392 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:28.393 [debug] QUERY OK source="media_items" db=0.1ms 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 [1890515] 20:03:28.393 [debug] Current batch of media processed. Will check again in 1000ms 20:03:29.393 [debug] Current batch of media processed. Will check again in 1000ms 20:03:30.394 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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" => 562, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", "id" => "fP5URbP30j0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fP5URbP30j0", "playlist_index" => 3, "timestamp" => 1766840490, "title" => "\"AI Can’t Replace Juniors\" - AWS CEO", "upload_date" => "20251227"} 20:03:30.394 [debug] QUERY OK source="sources" db=0.1ms 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" IN (?)) [37] 20:03:30.395 [debug] QUERY OK source="sources" db=0.1ms idle=48.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:30.397 [debug] QUERY OK source="media_items" db=1.9ms idle=48.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-27 13:01:30Z], 37] 20:03:30.398 [debug] QUERY OK source="media_items" db=1.2ms idle=50.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "a2c7d437-c188-4d5c-ac98-dd9565706c98", "https://www.youtube.com/watch?v=fP5URbP30j0", false, "fP5URbP30j0", 37, [], 562, false, 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, false, 98, ~U[2025-12-27 13:01:30Z], ~U[2026-01-01 02:03:30Z], ~U[2026-01-01 02:03:30Z], "check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "https://www.youtube.com/watch?v=fP5URbP30j0", "fP5URbP30j0", 37, 562, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, ~U[2025-12-27 13:01:30Z]] 20:03:30.399 [debug] QUERY OK source="sources" db=0.1ms idle=28.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:30.399 [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] 20:03:30.399 [debug] QUERY OK source="media_items" db=0.1ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1874638] 20:03:30.399 [debug] Current batch of media processed. Will check again in 1000ms 20:03:31.400 [debug] Current batch of media processed. Will check again in 1000ms 20:03:32.401 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\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" => 583, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", "id" => "qGH8gKdpZMQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qGH8gKdpZMQ", "playlist_index" => 4, "timestamp" => 1766667715, "title" => "Bubblesort is useless", "upload_date" => "20251225"} 20:03:32.401 [debug] QUERY OK source="sources" db=0.1ms idle=55.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:32.402 [debug] QUERY OK source="sources" db=0.1ms idle=55.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:32.404 [debug] QUERY OK source="media_items" db=1.9ms idle=55.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 13:01:55Z], 37] 20:03:32.405 [debug] QUERY OK source="media_items" db=0.7ms idle=58.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "7cf83767-8599-4204-9121-8b15fe9cb104", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", false, "qGH8gKdpZMQ", 37, [], 583, false, 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, false, 98, ~U[2025-12-25 13:01:55Z], ~U[2026-01-01 02:03:32Z], ~U[2026-01-01 02:03:32Z], "check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", "qGH8gKdpZMQ", 37, 583, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, ~U[2025-12-25 13:01:55Z]] 20:03:32.405 [debug] QUERY OK source="sources" db=0.1ms idle=33.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:32.406 [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] 20:03:32.406 [debug] QUERY OK source="media_items" db=0.3ms 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 [1858870] 20:03:32.406 [debug] Current batch of media processed. Will check again in 1000ms 20:03:33.407 [debug] Current batch of media processed. Will check again in 1000ms 20:03:34.408 [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" => 422, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", "id" => "GOjMPl0stfg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GOjMPl0stfg", "playlist_index" => 5, "timestamp" => 1766494837, "title" => "Open Source won an Emmy", "upload_date" => "20251223"} 20:03:34.408 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 20:03:34.409 [debug] QUERY OK source="sources" db=0.0ms idle=62.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:34.411 [debug] QUERY OK source="media_items" db=1.9ms idle=62.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-23 13:00:37Z], 37] 20:03:34.412 [debug] QUERY OK source="media_items" db=0.5ms idle=64.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "Open Source won an Emmy", "bdc1c9e1-8a8d-4c97-aab6-68e5b48be3e8", "https://www.youtube.com/watch?v=GOjMPl0stfg", false, "GOjMPl0stfg", 37, [], 422, false, 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, false, 98, ~U[2025-12-23 13:00:37Z], ~U[2026-01-01 02:03:34Z], ~U[2026-01-01 02:03: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", "Open Source won an Emmy", "https://www.youtube.com/watch?v=GOjMPl0stfg", "GOjMPl0stfg", 37, 422, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, ~U[2025-12-23 13:00:37Z]] 20:03:34.412 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:34.412 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:34.412 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1842714] 20:03:34.412 [debug] Current batch of media processed. Will check again in 1000ms 20:03:35.413 [debug] Current batch of media processed. Will check again in 1000ms 20:03:36.414 [debug] Current batch of media processed. Will check again in 1000ms 20:03:37.415 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\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" => 656, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", "id" => "HfJwezWWu08", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HfJwezWWu08", "playlist_index" => 6, "timestamp" => 1766322037, "title" => "Microsoft is ruining Github", "upload_date" => "20251221"} 20:03:37.416 [debug] QUERY OK source="sources" db=0.1ms idle=1069.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:37.416 [debug] QUERY OK source="sources" db=0.1ms idle=1069.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:37.418 [debug] QUERY OK source="media_items" db=1.9ms idle=1069.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-21 13:00:37Z], 37] 20:03:37.419 [debug] QUERY OK source="media_items" db=0.9ms idle=1042.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "a8f5b722-5a19-4da9-9bde-a59da9430902", "https://www.youtube.com/watch?v=HfJwezWWu08", false, "HfJwezWWu08", 37, [], 656, false, 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, false, 98, ~U[2025-12-21 13:00:37Z], ~U[2026-01-01 02:03:37Z], ~U[2026-01-01 02:03:37Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "https://www.youtube.com/watch?v=HfJwezWWu08", "HfJwezWWu08", 37, 656, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, ~U[2025-12-21 13:00:37Z]] 20:03:37.420 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [37] 20:03:37.420 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:37.420 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1826952] 20:03:37.420 [debug] Current batch of media processed. Will check again in 1000ms 20:03:38.421 [debug] Current batch of media processed. Will check again in 1000ms 20:03:39.422 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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" => 3896, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", "id" => "vHfdUqLmPNU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vHfdUqLmPNU", "playlist_index" => 7, "timestamp" => 1766235721, "title" => "Legendary Game Dev Jonathan Blow | The Standup", "upload_date" => "20251220"} 20:03:39.423 [debug] QUERY OK source="sources" db=0.1ms idle=76.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:39.423 [debug] QUERY OK source="sources" db=0.1ms idle=76.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:39.425 [debug] QUERY OK source="media_items" db=2.0ms idle=76.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-20 13:02:01Z], 37] 20:03:39.426 [debug] QUERY OK source="media_items" db=0.9ms idle=79.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "e2efb4ad-e08c-4b75-8131-da0403974005", "https://www.youtube.com/watch?v=vHfdUqLmPNU", false, "vHfdUqLmPNU", 37, [], 3896, false, 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, false, 98, ~U[2025-12-20 13:02:01Z], ~U[2026-01-01 02:03:39Z], ~U[2026-01-01 02:03:39Z], "Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "https://www.youtube.com/watch?v=vHfdUqLmPNU", "vHfdUqLmPNU", 37, 3896, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, ~U[2025-12-20 13:02:01Z]] 20:03:39.427 [debug] QUERY OK source="sources" db=0.1ms idle=47.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:39.427 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:39.427 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1818764] 20:03:39.427 [debug] Current batch of media processed. Will check again in 1000ms 20:03:40.428 [debug] Current batch of media processed. Will check again in 1000ms 20:03:41.429 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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" => 1840, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", "id" => "kZGyz9jCUj0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kZGyz9jCUj0", "playlist_index" => 8, "timestamp" => 1766149289, "title" => "Worst Onboarding Experience Ever | The Standup", "upload_date" => "20251219"} 20:03:41.430 [debug] QUERY OK source="sources" db=0.1ms idle=83.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:41.430 [debug] QUERY OK source="sources" db=0.1ms idle=83.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:41.432 [debug] QUERY OK source="media_items" db=2.0ms idle=83.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-19 13:01:29Z], 37] 20:03:41.433 [debug] QUERY OK source="media_items" db=0.9ms idle=86.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "440b3b0b-907b-464a-8eb9-08cbca264bc3", "https://www.youtube.com/watch?v=kZGyz9jCUj0", false, "kZGyz9jCUj0", 37, [], 1840, false, 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, false, 98, ~U[2025-12-19 13:01:29Z], ~U[2026-01-01 02:03:41Z], ~U[2026-01-01 02:03:41Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "https://www.youtube.com/watch?v=kZGyz9jCUj0", "kZGyz9jCUj0", 37, 1840, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, ~U[2025-12-19 13:01:29Z]] 20:03:41.434 [debug] QUERY OK source="sources" db=0.1ms idle=52.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:41.434 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:41.434 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1810563] 20:03:41.434 [debug] Current batch of media processed. Will check again in 1000ms 20:03:42.435 [debug] Current batch of media processed. Will check again in 1000ms 20:03:43.436 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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" => 493, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", "id" => "3tHOhMjB498", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3tHOhMjB498", "playlist_index" => 9, "timestamp" => 1766062482, "title" => "The Firefox Situation", "upload_date" => "20251218"} 20:03:43.436 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 20:03:43.437 [debug] QUERY OK source="sources" db=0.0ms idle=90.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:43.439 [debug] QUERY OK source="media_items" db=1.9ms idle=90.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 12:54:42Z], 37] 20:03:43.440 [debug] QUERY OK source="media_items" db=0.9ms idle=92.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "5ed4d41e-e0da-498d-a9c8-14af4bbe3300", "https://www.youtube.com/watch?v=3tHOhMjB498", false, "3tHOhMjB498", 37, [], 493, false, 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, false, 98, ~U[2025-12-18 12:54:42Z], ~U[2026-01-01 02:03:43Z], ~U[2026-01-01 02:03:43Z], "THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "https://www.youtube.com/watch?v=3tHOhMjB498", "3tHOhMjB498", 37, 493, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, ~U[2025-12-18 12:54:42Z]] 20:03:43.440 [debug] QUERY OK source="sources" db=0.1ms idle=57.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:43.441 [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] 20:03:43.441 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1803387] 20:03:43.441 [debug] Current batch of media processed. Will check again in 1000ms 20:03:44.442 [debug] Current batch of media processed. Will check again in 1000ms 20:03:45.443 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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" => 726, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", "id" => "QtGBnR24LcM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QtGBnR24LcM", "playlist_index" => 10, "timestamp" => 1765907902, "title" => "Linus x Linus - Is AI A Bubble?", "upload_date" => "20251216"} 20:03:45.443 [debug] QUERY OK source="sources" db=0.1ms idle=97.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:45.444 [debug] QUERY OK source="sources" db=0.1ms idle=97.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:45.446 [debug] QUERY OK source="media_items" db=2.0ms idle=97.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-16 17:58:22Z], 37] 20:03:45.447 [debug] QUERY OK source="media_items" db=0.7ms idle=100.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "23641d26-9d92-4b21-a34c-4ae91fda3928", "https://www.youtube.com/watch?v=QtGBnR24LcM", false, "QtGBnR24LcM", 37, [], 726, false, 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, false, 98, ~U[2025-12-16 17:58:22Z], ~U[2026-01-01 02:03:45Z], ~U[2026-01-01 02:03:45Z], "Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "https://www.youtube.com/watch?v=QtGBnR24LcM", "QtGBnR24LcM", 37, 726, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, ~U[2025-12-16 17:58:22Z]] 20:03:45.447 [debug] QUERY OK source="sources" db=0.2ms idle=61.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:45.448 [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] 20:03:45.448 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1788621] 20:03:45.448 [debug] Current batch of media processed. Will check again in 1000ms 20:03:46.449 [debug] Current batch of media processed. Will check again in 1000ms 20:03:47.450 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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" => 607, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", "id" => "7vw445i8gOI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7vw445i8gOI", "playlist_index" => 11, "timestamp" => 1765718239, "title" => "How React took down Cloudflare", "upload_date" => "20251214"} 20:03:47.451 [debug] QUERY OK source="sources" db=0.1ms idle=104.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:47.451 [debug] QUERY OK source="sources" db=0.0ms idle=104.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:47.453 [debug] QUERY OK source="media_items" db=1.9ms idle=104.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-14 13:17:19Z], 37] 20:03:47.454 [debug] QUERY OK source="media_items" db=0.9ms idle=107.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "93026d18-3fcd-4e90-9a61-f6594095d33d", "https://www.youtube.com/watch?v=7vw445i8gOI", false, "7vw445i8gOI", 37, [], 607, false, 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, false, 98, ~U[2025-12-14 13:17:19Z], ~U[2026-01-01 02:03:47Z], ~U[2026-01-01 02:03:47Z], "Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "https://www.youtube.com/watch?v=7vw445i8gOI", "7vw445i8gOI", 37, 607, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, ~U[2025-12-14 13:17:19Z]] 20:03:47.454 [debug] QUERY OK source="sources" db=0.1ms idle=66.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:47.455 [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] 20:03:47.455 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1771351] 20:03:47.455 [debug] Current batch of media processed. Will check again in 1000ms 20:03:47.589 [info] {"source":"oban","duration":3644,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:48.456 [debug] Current batch of media processed. Will check again in 1000ms 20:03:49.457 [debug] Current batch of media processed. Will check again in 1000ms 20:03:50.458 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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" => 554, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", "id" => "S4oO27tXVyE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=S4oO27tXVyE", "playlist_index" => 12, "timestamp" => 1765545528, "title" => "Oops we leaked your data", "upload_date" => "20251212"} 20:03:50.459 [debug] QUERY OK source="sources" db=0.1ms idle=1112.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:50.459 [debug] QUERY OK source="sources" db=0.1ms idle=1112.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:50.461 [debug] QUERY OK source="media_items" db=1.9ms 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[2025-12-12 13:18:48Z], 37] 20:03:50.462 [debug] QUERY OK source="media_items" db=0.7ms idle=1071.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "38acded9-4f6d-4eda-9b3a-b89e3728db70", "https://www.youtube.com/watch?v=S4oO27tXVyE", false, "S4oO27tXVyE", 37, [], 554, false, 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, false, 98, ~U[2025-12-12 13:18:48Z], ~U[2026-01-01 02:03:50Z], ~U[2026-01-01 02:03:50Z], "Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "https://www.youtube.com/watch?v=S4oO27tXVyE", "S4oO27tXVyE", 37, 554, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, ~U[2025-12-12 13:18:48Z]] 20:03:50.462 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:50.463 [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] 20:03:50.463 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1755590] 20:03:50.463 [debug] Current batch of media processed. Will check again in 1000ms 20:03:51.464 [debug] Current batch of media processed. Will check again in 1000ms 20:03:52.465 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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" => 661, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", "id" => "E3_95BZYIVs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=E3_95BZYIVs", "playlist_index" => 13, "timestamp" => 1765371635, "title" => "Why Github Why?", "upload_date" => "20251210"} 20:03:52.466 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 20:03:52.466 [debug] QUERY OK source="sources" db=0.1ms idle=120.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:52.468 [debug] QUERY OK source="media_items" db=1.9ms idle=120.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 13:00:35Z], 37] 20:03:52.469 [debug] QUERY OK source="media_items" db=0.6ms idle=122.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "78032085-accc-4f7b-8971-d240d5712197", "https://www.youtube.com/watch?v=E3_95BZYIVs", false, "E3_95BZYIVs", 37, [], 661, false, 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, false, 98, ~U[2025-12-10 13:00:35Z], ~U[2026-01-01 02:03:52Z], ~U[2026-01-01 02:03:52Z], "TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "https://www.youtube.com/watch?v=E3_95BZYIVs", "E3_95BZYIVs", 37, 661, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, ~U[2025-12-10 13:00:35Z]] 20:03:52.470 [debug] QUERY OK source="sources" db=0.1ms idle=75.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:52.470 [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] 20:03:52.470 [debug] QUERY OK source="media_items" db=0.1ms 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 [1739553] 20:03:52.470 [debug] Current batch of media processed. Will check again in 1000ms 20:03:53.471 [debug] Current batch of media processed. Will check again in 1000ms 20:03:54.472 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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" => 2084, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", "id" => "_L5ynHuFX7Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_L5ynHuFX7Y", "playlist_index" => 14, "timestamp" => 1765125003, "title" => "1 year, no job", "upload_date" => "20251207"} 20:03:54.472 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 20:03:54.473 [debug] QUERY OK source="sources" db=0.0ms idle=126.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:54.475 [debug] QUERY OK source="media_items" db=1.9ms idle=126.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-07 16:30:03Z], 37] 20:03:54.476 [debug] QUERY OK source="media_items" db=0.6ms idle=128.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "c74789be-d7ad-4a1e-b146-79ae9adf2a2b", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", false, "_L5ynHuFX7Y", 37, [], 2084, false, 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, false, 98, ~U[2025-12-07 16:30:03Z], ~U[2026-01-01 02:03:54Z], ~U[2026-01-01 02:03:54Z], "original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", "_L5ynHuFX7Y", 37, 2084, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, ~U[2025-12-07 16:30:03Z]] 20:03:54.476 [debug] QUERY OK source="sources" db=0.1ms idle=80.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:54.476 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:03:54.477 [debug] QUERY OK source="media_items" db=0.1ms 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 [1716823] 20:03:54.477 [debug] Current batch of media processed. Will check again in 1000ms 20:03:55.477 [debug] Current batch of media processed. Will check again in 1000ms 20:03:56.478 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\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" => 629, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", "id" => "bh5ut_T6A4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bh5ut_T6A4c", "playlist_index" => 15, "timestamp" => 1764942376, "title" => "I Finally Watched It", "upload_date" => "20251205"} 20:03:56.479 [debug] QUERY OK source="sources" db=0.2ms idle=132.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [37] 20:03:56.479 [debug] QUERY OK source="sources" db=0.1ms idle=132.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:03:56.481 [debug] QUERY OK source="media_items" db=2.0ms idle=133.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-05 13:46:16Z], 37] 20:03:56.482 [debug] QUERY OK source="media_items" db=0.7ms idle=135.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "b40c4642-016e-4272-ab71-c6976875a431", "https://www.youtube.com/watch?v=bh5ut_T6A4c", false, "bh5ut_T6A4c", 37, [], 629, false, 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, false, 98, ~U[2025-12-05 13:46:16Z], ~U[2026-01-01 02:03:56Z], ~U[2026-01-01 02:03:56Z], "Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "https://www.youtube.com/watch?v=bh5ut_T6A4c", "bh5ut_T6A4c", 37, 629, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, ~U[2025-12-05 13:46:16Z]] 20:03:56.483 [debug] QUERY OK source="sources" db=0.1ms idle=83.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:03:56.483 [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] 20:03:56.483 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1700214] 20:03:56.483 [debug] Current batch of media processed. Will check again in 1000ms 20:03:57.484 [debug] Current batch of media processed. Will check again in 1000ms 20:03:58.485 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "duration" => 2452, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", "id" => "r3bPmtEP9SQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=r3bPmtEP9SQ", "playlist_index" => 16, "timestamp" => 1764853312, "title" => "The Secret of the AWS Outage | The Standup", "upload_date" => "20251204"} 20:03:58.485 [debug] QUERY OK source="sources" db=0.1ms idle=139.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:03:58.486 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [37] 20:03:58.488 [debug] QUERY OK source="media_items" db=1.9ms idle=139.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 13:01:52Z], 37] 20:03:58.489 [debug] QUERY OK source="media_items" db=0.8ms idle=142.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "d93610e7-407d-42ce-b4c6-441b011a3d53", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", false, "r3bPmtEP9SQ", 37, [], 2452, false, 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, false, 98, ~U[2025-12-04 13:01:52Z], ~U[2026-01-01 02:03:58Z], ~U[2026-01-01 02:03:58Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", "r3bPmtEP9SQ", 37, 2452, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, ~U[2025-12-04 13:01:52Z]] 20:03:58.489 [debug] QUERY OK source="sources" db=0.1ms idle=87.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:03:58.490 [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] 20:03:58.490 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1691650] 20:03:58.490 [debug] Current batch of media processed. Will check again in 1000ms 20:03:59.491 [debug] Current batch of media processed. Will check again in 1000ms 20:04:00.492 [debug] Current batch of media processed. Will check again in 1000ms 20:04:00.884 [info] {"source":"oban","duration":153,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:04:01.493 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "duration" => 639, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", "id" => "Te2I2muO-4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Te2I2muO-4c", "playlist_index" => 17, "timestamp" => 1764735026, "title" => "Anthropic confirms software engineering is NOT dead", "upload_date" => "20251203"} 20:04:01.494 [debug] QUERY OK source="sources" db=0.1ms idle=1147.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:04:01.494 [debug] QUERY OK source="sources" db=0.1ms idle=1147.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:04:01.496 [debug] QUERY OK source="media_items" db=1.9ms idle=1090.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-03 04:10:26Z], 37] 20:04:01.497 [debug] QUERY OK source="media_items" db=0.7ms idle=612.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "f772f9fc-b61f-48e8-8eaf-da0ea4569226", "https://www.youtube.com/watch?v=Te2I2muO-4c", false, "Te2I2muO-4c", 37, [], 639, false, 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, false, 98, ~U[2025-12-03 04:10:26Z], ~U[2026-01-01 02:04:01Z], ~U[2026-01-01 02:04:01Z], "Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "https://www.youtube.com/watch?v=Te2I2muO-4c", "Te2I2muO-4c", 37, 639, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, ~U[2025-12-03 04:10:26Z]] 20:04:01.497 [debug] QUERY OK source="sources" db=0.1ms idle=92.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:01.498 [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] 20:04:01.498 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1681283] 20:04:01.498 [debug] Current batch of media processed. Will check again in 1000ms 20:04:02.499 [debug] Current batch of media processed. Will check again in 1000ms 20:04:03.500 [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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\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" => 329, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", "id" => "yqrp2uK9LY4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yqrp2uK9LY4", "playlist_index" => 18, "timestamp" => 1764681581, "title" => "Companies keep falling for it", "upload_date" => "20251202"} 20:04:03.501 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=154.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:04:03.501 [debug] QUERY OK source="sources" db=0.1ms idle=154.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:04:03.503 [debug] QUERY OK source="media_items" db=2.0ms idle=155.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-02 13:19:41Z], 37] 20:04:03.504 [debug] QUERY OK source="media_items" db=0.6ms idle=157.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "caeb5007-c43b-46ca-ad27-7ab65e908e48", "https://www.youtube.com/watch?v=yqrp2uK9LY4", false, "yqrp2uK9LY4", 37, [], 329, false, 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, false, 98, ~U[2025-12-02 13:19:41Z], ~U[2026-01-01 02:04:03Z], ~U[2026-01-01 02:04:03Z], "https://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "https://www.youtube.com/watch?v=yqrp2uK9LY4", "yqrp2uK9LY4", 37, 329, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, ~U[2025-12-02 13:19:41Z]] 20:04:03.504 [debug] QUERY OK source="sources" db=0.1ms idle=97.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:04:03.505 [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] 20:04:03.505 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1676402] 20:04:03.505 [debug] Current batch of media processed. Will check again in 1000ms 20:04:04.506 [debug] Current batch of media processed. Will check again in 1000ms 20:04:05.507 [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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\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" => 446, "filename" => "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", "id" => "bDOM3cy6IYg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bDOM3cy6IYg", "playlist_index" => 19, "timestamp" => 1764507670, "title" => "they are turning on us (and I'm not mad)", "upload_date" => "20251130"} 20:04:05.508 [debug] QUERY OK source="sources" db=0.1ms idle=161.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:04:05.508 [debug] QUERY OK source="sources" db=0.1ms idle=161.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:04:05.510 [debug] QUERY OK source="media_items" db=2.0ms idle=162.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-30 13:01:10Z], 37] 20:04:05.512 [debug] QUERY OK source="media_items" db=1.9ms idle=164.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "acaeaecf-f05f-4bfb-8a86-d82caef292ca", "https://www.youtube.com/watch?v=bDOM3cy6IYg", false, "bDOM3cy6IYg", 37, [], 446, false, 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, false, 98, ~U[2025-11-30 13:01:10Z], ~U[2026-01-01 02:04:05Z], ~U[2026-01-01 02:04: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\n### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "https://www.youtube.com/watch?v=bDOM3cy6IYg", "bDOM3cy6IYg", 37, 446, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, ~U[2025-11-30 13:01:10Z]] 20:04:05.513 [debug] QUERY OK source="sources" db=0.1ms idle=103.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:05.513 [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] 20:04:05.513 [debug] QUERY OK source="media_items" db=0.1ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1660535] 20:04:05.513 [debug] Current batch of media processed. Will check again in 1000ms 20:04:06.514 [debug] Current batch of media processed. Will check again in 1000ms 20:04:07.500 [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/df/d3/dfd3f6a88f3306948d26da085a9ad6e9a2402e0d29f45cd90fa5b3fade772730.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/53/e4/53e4f52b0430d40ef148f76299c642c8d019d0747685cc39b27f0dd21838b181.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:04:07.501 [debug] Gracefully stopping file follower 20:04:07.501 [debug] QUERY OK source="sources" db=0.1ms idle=154.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:04:07.502 [debug] QUERY OK source="sources" db=0.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.504 [debug] QUERY OK source="media_items" db=1.9ms idle=155.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-31 12:00:10Z], 37] 20:04:07.505 [debug] QUERY OK source="media_items" db=0.6ms idle=157.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "46b1c60a-b908-4d67-b334-2b4e2bf92286", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", false, "5Hs4Ikwphe0", 37, [], 4028, false, 1, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, false, 98, ~U[2025-12-31 12:00:10Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Chapters\n00:00:00 - Intro\n00:01:38 - Teej Interupts\n00:03:30 - Intro Again\n00:05:46 - Trashs Pick\n00:09:09 - Teejs Band Dream\n00:10:18 - Marimba\n00:14:59 - Caseys Pick\n00:28:38 - Teejs Pick\n00:44:17 - More Marimba\n00:48:03 - Primes Pick\n00:53:00 - Twitch Pick\n00:57:52 - Youtubes Pick\n01:03:55 - Bonus Pick\n01:07:39 - Neovim Donation\n01:09:07 - PlanetScale\n01:14:53 - Outro\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "We gave $50,000 to OSS! Merry Christmas | The Standup", "https://www.youtube.com/watch?v=5Hs4Ikwphe0", "5Hs4Ikwphe0", 37, 4028, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e123100_We gave $50,000 to OSS! Merry Christmas | The Standup.mp4", false, ~U[2025-12-31 12:00:10Z]] 20:04:07.505 [debug] QUERY OK source="sources" db=0.1ms idle=92.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.507 [debug] QUERY OK source="media_items" db=1.9ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-29 12:59:05Z], 37] 20:04:07.508 [debug] QUERY OK source="media_items" db=0.4ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["They did what to SQL?", "a4832b98-1043-446e-8305-3fba3147a1b9", "https://www.youtube.com/watch?v=GwJrZBe8JX4", false, "GwJrZBe8JX4", 37, [], 359, false, 2, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, false, 98, ~U[2025-12-29 12:59:05Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "", "They did what to SQL?", "https://www.youtube.com/watch?v=GwJrZBe8JX4", "GwJrZBe8JX4", 37, 359, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122900_They did what to SQL?.mp4", false, ~U[2025-12-29 12:59:05Z]] 20:04:07.508 [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] 20:04:07.510 [debug] QUERY OK source="media_items" db=1.6ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-27 13:01:30Z], 37] 20:04:07.511 [debug] QUERY OK source="media_items" db=0.8ms idle=5.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "2678b4b2-1bd8-4ce9-b307-14a8f54734a7", "https://www.youtube.com/watch?v=fP5URbP30j0", false, "fP5URbP30j0", 37, [], 562, false, 3, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, false, 98, ~U[2025-12-27 13:01:30Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "check out https://convex.dev !!! Thanks again for sponsoring!!\nConvex, makes it easy to store your data and keep your backend and frontend synced in realtime, both locally and remote\n\nhttps://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nDiscord: https://discord.gg/ThePrimeagen\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n### LINKS \nhttps://www.finalroundai.com/blog/aws-ceo-ai-cannot-replace-junior-developers\nhttps://www.finalroundai.com/blog/aws-ceo-matt-garman-says-replacing-junior-developers-with-ai-the-dumbest-thing\nhttps://www.businessinsider.com/anthropic-ceo-ai-90-percent-code-3-to-6-months-2025-3\nhttps://www.finalroundai.com/blog/github-ceo-thomas-dohmke-warns-developers-embrace-ai-or-quit\nhttps://www.finalroundai.com/blog/coinbase-ceo-fired-engineers-for-not-using-ai-tools\nhttps://www.neowin.net/news/microsoft-finally-admits-almost-all-major-windows-11-core-features-are-broken/\n\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 Can’t Replace Juniors\" - AWS CEO", "https://www.youtube.com/watch?v=fP5URbP30j0", "fP5URbP30j0", 37, 562, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122700_"AI Can’t Replace Juniors" - AWS CEO.mp4", false, ~U[2025-12-27 13:01:30Z]] 20:04:07.511 [debug] QUERY OK source="sources" db=0.4ms 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] 20:04:07.513 [debug] QUERY OK source="media_items" db=1.6ms idle=4.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 13:01:55Z], 37] 20:04:07.514 [debug] QUERY OK source="media_items" db=0.6ms idle=5.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "a56a369d-6271-4188-856e-1f592049205a", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", false, "qGH8gKdpZMQ", 37, [], 583, false, 4, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, false, 98, ~U[2025-12-25 13:01:55Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "check out https://trm.sh/g2i for all of your hiring needs! Thank you all for all the support :)\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\n### Links\nhttps://buttondown.com/hillelwayne/archive/when-would-you-ever-want-bubblesort/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Bubblesort is useless", "https://www.youtube.com/watch?v=qGH8gKdpZMQ", "qGH8gKdpZMQ", 37, 583, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122500_Bubblesort is useless.mp4", false, ~U[2025-12-25 13:01:55Z]] 20:04:07.514 [debug] QUERY OK source="sources" db=0.2ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.516 [debug] QUERY OK source="media_items" db=1.6ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 13:00:37Z], 37] 20:04:07.517 [debug] QUERY OK source="media_items" db=0.6ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "Open Source won an Emmy", "ec67e7f2-f1e8-49f0-81c8-7d096b2458bc", "https://www.youtube.com/watch?v=GOjMPl0stfg", false, "GOjMPl0stfg", 37, [], 422, false, 5, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, false, 98, ~U[2025-12-23 13:00:37Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "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", "Open Source won an Emmy", "https://www.youtube.com/watch?v=GOjMPl0stfg", "GOjMPl0stfg", 37, 422, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122300_Open Source won an Emmy.mp4", false, ~U[2025-12-23 13:00:37Z]] 20:04:07.517 [debug] QUERY OK source="sources" db=0.2ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.519 [debug] QUERY OK source="media_items" db=1.7ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-21 13:00:37Z], 37] 20:04:07.520 [debug] QUERY OK source="media_items" db=0.8ms idle=4.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "15f08509-f2f4-404e-b19d-07b446a5c715", "https://www.youtube.com/watch?v=HfJwezWWu08", false, "HfJwezWWu08", 37, [], 656, false, 6, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, false, 98, ~U[2025-12-21 13:00:37Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\nDiscord: https://discord.gg/ThePrimeagen\n\n### SOURCES \nhttps://x.com/mitchellh/status/2001072374251446374\nhttps://github.com/actions/runner/blob/b91797022c1b5659c26c9b5400ecc8fa5b211a9e/src/Misc/layoutroot/safe_sleep.sh#L3-L6\nhttps://github.com/orgs/community/discussions/8726\nhttps://www.theverge.com/news/793579/microsoft-windows-11-local-account-bypass-workaround-changes\nhttps://x.com/mitchellh/status/2002052148281164075\nhttps://github.com/jj-vcs/jj\nhttps://newsletter.pragmaticengineer.com/p/stacked-diffs\nhttps://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://web.archive.org/web/20251216211516/https://resources.github.com/actions/2026-pricing-changes-for-github-actions/\nhttps://github.com/orgs/community/discussions/182089\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Microsoft is ruining Github", "https://www.youtube.com/watch?v=HfJwezWWu08", "HfJwezWWu08", 37, 656, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122100_Microsoft is ruining Github.mp4", false, ~U[2025-12-21 13:00:37Z]] 20:04:07.521 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.523 [debug] QUERY OK source="media_items" db=1.7ms idle=3.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-20 13:02:01Z], 37] 20:04:07.524 [debug] QUERY OK source="media_items" db=0.8ms idle=5.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "da603af9-f9da-42ea-a9aa-0fd3e77e87d1", "https://www.youtube.com/watch?v=vHfdUqLmPNU", false, "vHfdUqLmPNU", 37, [], 3896, false, 7, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, false, 98, ~U[2025-12-20 13:02:01Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Chapters \n00:00:00 - Intro\n00:00:12 - Order of the Sinking Star Trailer\n00:02:33 - Casey helped come up with the idea for Braid - part1 \n00:05:12 - Terminal Coffee\n00:05:46 - Casey helped come up with the idea for Braid - part2\n00:10:32 - Questions\n00:11:11 - Where did the design idea for sinking star come from / game design\n00:19:26 - Raspberry\n00:22:18 - JAI and C++\n00:29:06 - JAI name and Quality of software names\n00:31:38 - Why make a new language\n00:41:13 - Compile Time\nRapid Fire Questions\n00:44:47 - Will AI Save the Gaming Industry\n00:45:57 - How long should you spend on a project\n00:49:22 - Advice on balancing CEO and Game Dev\n00:51:37 - Why Braid\n00:52:10 - Advice for Modern Webdevs\n01:01:17 - Any Blockers\n01:04:20 - Outro\n\nMore Standup - \nClips: @TheStandupPod\nFull Length Podcasts: https://trm.sh/thestandup\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", "Legendary Game Dev Jonathan Blow | The Standup", "https://www.youtube.com/watch?v=vHfdUqLmPNU", "vHfdUqLmPNU", 37, 3896, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e122000_Legendary Game Dev Jonathan Blow | The Standup.mp4", false, ~U[2025-12-20 13:02:01Z]] 20:04:07.524 [debug] QUERY OK source="sources" db=0.3ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.526 [debug] QUERY OK source="media_items" db=1.6ms idle=3.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-19 13:01:29Z], 37] 20:04:07.527 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "6e491640-47ac-4cf9-ad38-eda88fa5a696", "https://www.youtube.com/watch?v=kZGyz9jCUj0", false, "kZGyz9jCUj0", 37, [], 1840, false, 8, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, false, 98, ~U[2025-12-19 13:01:29Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app/prime CODE: PRIME\n\n\nChapters\n00:00:00 - Intro\n00:01:39 - Presentation Start\n00:03:37 - Tuple\n00:05:07 - Part 1 - JSON-based Domain Specific Language\n00:09:50 - Part 2 - JDSL In Action\n00:15:19 - Part 3 - Rise and Grind\n00:16:54 - Part 4 - Tom\n00:19:03 - Part 5 - The Meeting\n00:23:13 - Presentation End\n00:24:55 - Casey has questions\n00:29:46 - Outro\n\nMore Standup - \nClips: @TheStandupPod \nFull Length Podcasts: https://trm.sh/thestandup\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", "Worst Onboarding Experience Ever | The Standup", "https://www.youtube.com/watch?v=kZGyz9jCUj0", "kZGyz9jCUj0", 37, 1840, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121900_Worst Onboarding Experience Ever | The Standup.mp4", false, ~U[2025-12-19 13:01:29Z]] 20:04:07.527 [debug] QUERY OK source="sources" db=0.2ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.529 [debug] QUERY OK source="media_items" db=1.6ms idle=3.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 12:54:42Z], 37] 20:04:07.530 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "862df596-1ac3-44d3-9fec-bbc71169f92c", "https://www.youtube.com/watch?v=3tHOhMjB498", false, "3tHOhMjB498", 37, [], 493, false, 9, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, false, 98, ~U[2025-12-18 12:54:42Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "THE SWEATER: https://theprimeagen-shop.fourthwall.com/products/i-use-arch-btw\n\nssh terminal.shop\nYes, seriously, this is my company, and we selected and found some of the worlds best coffee. US only (for now (the world is hard when you dont do crappy influencer coffee))\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\nSOURCES\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/\nhttps://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=101s\nhttps://www.youtube.com/watch?v=iUNqFCQPwdg&t=67s\nhttps://gs.statcounter.com/browser-market-share\n\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 Firefox Situation", "https://www.youtube.com/watch?v=3tHOhMjB498", "3tHOhMjB498", 37, 493, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121800_The Firefox Situation.mp4", false, ~U[2025-12-18 12:54:42Z]] 20:04:07.531 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.532 [debug] QUERY OK source="media_items" db=1.7ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 17:58:22Z], 37] 20:04:07.533 [debug] QUERY OK source="media_items" db=0.6ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "ac804908-dcba-4033-a527-d3eef83fdef7", "https://www.youtube.com/watch?v=QtGBnR24LcM", false, "QtGBnR24LcM", 37, [], 726, false, 10, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, false, 98, ~U[2025-12-16 17:58:22Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Original: https://www.youtube.com/watch?v=mfv0V1SxbNA\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", "Linus x Linus - Is AI A Bubble?", "https://www.youtube.com/watch?v=QtGBnR24LcM", "QtGBnR24LcM", 37, 726, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121600_Linus x Linus - Is AI A Bubble?.mp4", false, ~U[2025-12-16 17:58:22Z]] 20:04:07.534 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.536 [debug] QUERY OK source="media_items" db=1.6ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-14 13:17:19Z], 37] 20:04:07.540 [debug] QUERY OK source="media_items" db=3.8ms idle=5.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "54e987ea-ffac-4a28-b56a-9e51a016695a", "https://www.youtube.com/watch?v=7vw445i8gOI", false, "7vw445i8gOI", 37, [], 607, false, 11, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, false, 98, ~U[2025-12-14 13:17:19Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Checkout https://convex.dev today's sponsor!\nConvex, makes it easy to store your data\nand keep your backend and frontend synced in realtime,\nboth locally and remotely!\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", "How React took down Cloudflare", "https://www.youtube.com/watch?v=7vw445i8gOI", "7vw445i8gOI", 37, 607, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121400_How React took down Cloudflare.mp4", false, ~U[2025-12-14 13:17:19Z]] 20:04:07.540 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [37] 20:04:07.542 [debug] QUERY OK source="media_items" db=1.7ms 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[2025-12-12 13:18:48Z], 37] 20:04:07.543 [debug] QUERY OK source="media_items" db=0.6ms idle=8.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "337831a2-c16e-4032-ac5e-e9300f3a2497", "https://www.youtube.com/watch?v=S4oO27tXVyE", false, "S4oO27tXVyE", 37, [], 554, false, 12, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, false, 98, ~U[2025-12-12 13:18:48Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Check out https://trm.sh/g2i for all of your hiring needs!\n\nSweater!! https://theprimeagen-shop.fourthwall.com/\n\nSOURCE MATERIAL: https://www.promptarmor.com/resources/google-antigravity-exfiltrates-data\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", "Oops we leaked your data", "https://www.youtube.com/watch?v=S4oO27tXVyE", "S4oO27tXVyE", 37, 554, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121200_Oops we leaked your data.mp4", false, ~U[2025-12-12 13:18:48Z]] 20:04:07.543 [debug] QUERY OK source="sources" db=0.2ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.545 [debug] QUERY OK source="media_items" db=1.7ms idle=3.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 13:00:35Z], 37] 20:04:07.546 [debug] QUERY OK source="media_items" db=0.6ms idle=5.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "c6b4cdb8-15a7-49fe-8dde-09a93028c3d3", "https://www.youtube.com/watch?v=E3_95BZYIVs", false, "E3_95BZYIVs", 37, [], 661, false, 13, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, false, 98, ~U[2025-12-10 13:00:35Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "TCP to HTTP???\nEverything you have ever needed about git???\ncheck out https://boot.dev/prime \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 Github Why?", "https://www.youtube.com/watch?v=E3_95BZYIVs", "E3_95BZYIVs", 37, 661, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e121000_Why Github Why?.mp4", false, ~U[2025-12-10 13:00:35Z]] 20:04:07.547 [debug] QUERY OK source="sources" db=0.2ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.548 [debug] QUERY OK source="media_items" db=1.7ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 16:30:03Z], 37] 20:04:07.549 [debug] QUERY OK source="media_items" db=0.6ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "d979efbb-9d26-4a34-a4b6-41544e656ddf", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", false, "_L5ynHuFX7Y", 37, [], 2084, false, 14, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, false, 98, ~U[2025-12-07 16:30:03Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "original: https://youtu.be/JZdj_Caa2vQ?si=a58QbX06Glw3yM0d\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", "1 year, no job", "https://www.youtube.com/watch?v=_L5ynHuFX7Y", "_L5ynHuFX7Y", 37, 2084, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120700_1 year, no job.mp4", false, ~U[2025-12-07 16:30:03Z]] 20:04:07.550 [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" = ?) [37] 20:04:07.552 [debug] QUERY OK source="media_items" db=1.7ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 13:46:16Z], 37] 20:04:07.552 [debug] QUERY OK source="media_items" db=0.5ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "ef36563f-e92f-4178-9455-d150e3d54f6a", "https://www.youtube.com/watch?v=bh5ut_T6A4c", false, "bh5ut_T6A4c", 37, [], 629, false, 15, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, false, 98, ~U[2025-12-05 13:46:16Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Check out the source material! \nhttps://youtu.be/rsoEipuwXiI?si=LLhFp3R8Y3WdayqF\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "I Finally Watched It", "https://www.youtube.com/watch?v=bh5ut_T6A4c", "bh5ut_T6A4c", 37, 629, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120500_I Finally Watched It.mp4", false, ~U[2025-12-05 13:46:16Z]] 20:04:07.553 [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] 20:04:07.555 [debug] QUERY OK source="media_items" db=1.6ms idle=3.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 13:01:52Z], 37] 20:04:07.569 [debug] QUERY OK source="media_items" db=13.6ms idle=4.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "bd1e547e-b047-4776-8146-2512b7704c42", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", false, "r3bPmtEP9SQ", 37, [], 2452, false, 16, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, false, 98, ~U[2025-12-04 13:01:52Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "If you're on Mac or Windows, check out tuple today! And if you're on Linux, let's just say come back and check soon 🙂 Say thanks to our sponsor by checking out https://tuple.app\n\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:00:54 - Caseys Intro\n00:01:15 - The Setup\n00:02:55 - The Story\n00:08:44 - The Post Mortem\n00:12:11 - The Informants\n00:14:10 - The Suspect\n00:15:34 - The Code\n00:20:33 - The Deal\n00:23:05 - The Conclusion \n00:24:37 - The Debrief\n00:26:40 - Google Testing Utility Failure\n00:28:43 - Production Code is Forever\n00:40:10 - Outro", "The Secret of the AWS Outage | The Standup", "https://www.youtube.com/watch?v=r3bPmtEP9SQ", "r3bPmtEP9SQ", 37, 2452, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120400_The Secret of the AWS Outage | The Standup.mp4", false, ~U[2025-12-04 13:01:52Z]] 20:04:07.569 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 20:04:07.571 [debug] QUERY OK source="media_items" db=1.8ms 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-12-03 04:10:26Z], 37] 20:04:07.576 [debug] QUERY OK source="media_items" db=4.5ms idle=18.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "2ee3283c-9905-4cf3-af5f-49190c625ba0", "https://www.youtube.com/watch?v=Te2I2muO-4c", false, "Te2I2muO-4c", 37, [], 639, false, 17, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, false, 98, ~U[2025-12-03 04:10:26Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "Check out https://trm.sh/convex today!!!!\n\nhttps://twitch.tv/ThePrimeagen - I Stream on Twitch\n\nhttps://twitter.com/terminaldotshop - Want to order coffee over SSH?\nssh terminal.shop\n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis\n\n00:00:00 - Intro\n00:01:02 - Why Bun Was Bought\n00:03:03 - Why Anthropic Bought Bun\n00:04:06 - Software Engineering Is Not Dead\n00:08:37 - Sorry For The Crash Out\n00:09:48 - The Two Biggest Problems Of Computer Science", "Anthropic confirms software engineering is NOT dead", "https://www.youtube.com/watch?v=Te2I2muO-4c", "Te2I2muO-4c", 37, 639, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120300_Anthropic confirms software engineering is NOT dead.mp4", false, ~U[2025-12-03 04:10:26Z]] 20:04:07.577 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [37] 20:04:07.579 [debug] QUERY OK source="media_items" db=1.7ms idle=8.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-02 13:19:41Z], 37] 20:04:07.580 [debug] QUERY OK source="media_items" db=0.5ms idle=9.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "d2b15b16-459e-4ad5-a033-0db0f20e7b77", "https://www.youtube.com/watch?v=yqrp2uK9LY4", false, "yqrp2uK9LY4", 37, [], 329, false, 18, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, false, 98, ~U[2025-12-02 13:19:41Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "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### link \nhttps://www.businessinsider.com/meta-ai-employee-performance-review-overhaul-2025-11\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "Companies keep falling for it", "https://www.youtube.com/watch?v=yqrp2uK9LY4", "yqrp2uK9LY4", 37, 329, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e120200_Companies keep falling for it.mp4", false, ~U[2025-12-02 13:19:41Z]] 20:04:07.580 [debug] QUERY OK source="sources" db=0.2ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [37] 20:04:07.582 [debug] QUERY OK source="media_items" db=1.7ms idle=4.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-30 13:01:10Z], 37] 20:04:07.583 [debug] QUERY OK source="media_items" db=0.5ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "2fcf755e-3e08-46a5-bef5-de391d98d3bb", "https://www.youtube.com/watch?v=bDOM3cy6IYg", false, "bDOM3cy6IYg", 37, [], 446, false, 19, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, false, 98, ~U[2025-11-30 13:01:10Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "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### Paper\nhttps://arxiv.org/pdf/2510.21860v1\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/Prime-Kinesis", "they are turning on us (and I'm not mad)", "https://www.youtube.com/watch?v=bDOM3cy6IYg", "bDOM3cy6IYg", 37, 446, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e113000_they are turning on us (and I'm not mad).mp4", false, ~U[2025-11-30 13:01:10Z]] 20:04:07.583 [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] 20:04:07.585 [debug] QUERY OK source="media_items" db=1.6ms idle=3.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-28 13:00:50Z], 37] 20:04:07.586 [debug] QUERY OK source="media_items" db=0.6ms idle=5.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "STOP. please microsoft", "d4488a0b-87d0-401e-932d-b3eb50057cb7", "https://www.youtube.com/watch?v=OY8o5e331iM", false, "OY8o5e331iM", 37, [], 370, false, 20, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", false, false, 98, ~U[2025-11-28 13:00:50Z], ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], "https://twitch.tv/ThePrimeagen - I Stream 5 days a Week\n\nhttps://twitter.com/terminaldotshop - Order coffee over SSH!\nssh terminal.shop\n\nBecome A Great Backend Dev: https://boot.dev/prime (I make courses for them)\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\nDiscord: https://discord.gg/ThePrimeagen\n\n\n### LINKS \n* https://blogs.windows.com/windows-insider/2025/11/21/notepad-update-begins-rolling-out-to-windows-insiders/\n* https://m.slashdot.org/story/444472\n* https://www.windowslatest.com/2025/11/22/microsoft-says-it-will-always-run-windows-11-file-explorer-in-the-background-to-load-it-faster/\n\nGreat News? Want me to research and create video????: https://www.reddit.com/r/ThePrimeagen\n\nKinesis Advantage 360: https://bit.ly/", "STOP. please microsoft", "https://www.youtube.com/watch?v=OY8o5e331iM", "OY8o5e331iM", 37, 370, false, "/downloads/chris/tubes/ThePrimeTime_[UCUyeluBRhGPCW4rPe_UvBZQ]/Season 2025/s2025e112800_STOP. please microsoft.mp4", false, ~U[2025-11-28 13:00:50Z]] 20:04:07.586 [debug] QUERY OK source="sources" db=0.2ms idle=4.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z], 37] 20:04:07.588 [debug] QUERY OK source="media_items" db=1.8ms idle=3.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 20:04:07.597 [debug] QUERY OK source="media_items" db=1.8ms idle=1.8ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [37] 20:04:07.598 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [37] 20:04:07.599 [debug] QUERY OK source="tasks" db=0.3ms idle=2.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88157, 37, ~U[2026-01-01 02:04:07Z], ~U[2026-01-01 02:04:07Z]] 20:04:07.599 [info] {"args":{"id":37},"id":88137,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":46231923,"event":"job:stop","queue_time":981928,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:04:17.592 [info] {"source":"oban","duration":3321,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:04:37.470 [info] {"args":{"id":1012084},"id":88114,"meta":{},"system_time":1767233077470340369,"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"]} 20:04:37.470 [debug] QUERY OK source="media_items" db=0.3ms idle=123.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" = ?) [1012084] 20:04:37.471 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:04:37.471 [debug] QUERY OK source="sources" db=0.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" = ?) [43] 20:04:37.471 [debug] QUERY OK source="media_profiles" db=0.2ms idle=124.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:04:37.472 [debug] QUERY OK source="media_items" db=0.2ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012084] 20:04:37.473 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012084] 20:04:37.473 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:04:37.473 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:04:37.473 [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 [] 20:04:37.474 [debug] Running yt-dlp command for action: get_downloadable_status 20:04:37.475 [debug] QUERY OK source="settings" db=0.0ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:04:37.476 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:04:37.476 [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 [] 20:04:37.476 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FoIQ7n3U1lk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/eb/6f/eb6f7ea86543701f02eee7c06a3165da2e9d8f54b0bb762f5da47ac17e8448c9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:04:39.787 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FoIQ7n3U1lk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/eb/6f/eb6f7ea86543701f02eee7c06a3165da2e9d8f54b0bb762f5da47ac17e8448c9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FoIQ7n3U1lk: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:04:39.787 [error] yt-dlp download error for media item #1012084: "ERROR: [youtube] FoIQ7n3U1lk: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:04:39.787 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012084},"id":88114,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2317126,"event":"job:exception","queue_time":391441,"attempt":13,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:04:47.597 [info] {"source":"oban","duration":3943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:05:00.885 [info] {"source":"oban","duration":170,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:05:17.601 [info] {"source":"oban","duration":2810,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:05:47.606 [info] {"source":"oban","duration":4123,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:06:00.886 [info] {"source":"oban","duration":161,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:06:17.610 [info] {"source":"oban","duration":3170,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:06:47.615 [info] {"source":"oban","duration":3850,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:07:00.888 [info] {"source":"oban","duration":502,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:07:17.620 [info] {"source":"oban","duration":3668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:07:47.624 [info] {"source":"oban","duration":2597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 20:07:58.801 [info] {"args":{"id":382020},"id":87549,"meta":{},"system_time":1767233278801003748,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":17,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:07:58.801 [debug] QUERY OK source="media_items" db=0.4ms idle=1454.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" = ?) [382020] 20:07:58.801 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:07:58.802 [debug] QUERY OK source="sources" db=0.1ms idle=1455.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:07:58.802 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1010.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:07:58.802 [debug] QUERY OK source="media_items" db=0.2ms idle=8.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [382020] 20:07:58.803 [debug] QUERY OK source="media_metadata" db=0.2ms 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" = ?) [382020] 20:07:58.804 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:07:58.804 [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 [] 20:07:58.804 [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 [] 20:07:58.804 [debug] Running yt-dlp command for action: get_downloadable_status 20:07:58.805 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:07:58.805 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:07:58.805 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:07:58.805 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FJ_Ui5Tw6wY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f1/85/f18586d7eec9750aaa0ff02b2e7386534767e5e58eb9e02feaeee906c8504239.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:08:00.890 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:08:01.103 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FJ_Ui5Tw6wY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f1/85/f18586d7eec9750aaa0ff02b2e7386534767e5e58eb9e02feaeee906c8504239.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] FJ_Ui5Tw6wY: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:08:01.103 [error] yt-dlp download error for media item #382020: "ERROR: [youtube] FJ_Ui5Tw6wY: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:08:01.103 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":382020},"id":87549,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2302301,"event":"job:exception","queue_time":491335,"attempt":17,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:08:17.628 [info] {"source":"oban","duration":3520,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:08:47.633 [info] {"source":"oban","duration":3653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:00.891 [info] {"source":"oban","duration":279,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:09:17.637 [info] {"source":"oban","duration":3674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:30.948 [info] {"args":{"id":35},"id":88138,"meta":{},"system_time":1767233370948050421,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:09:30.948 [debug] QUERY OK source="sources" db=0.2ms idle=1009.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:30.948 [debug] QUERY OK source="settings" db=0.1ms idle=601.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:30.951 [debug] QUERY OK source="media_items" db=2.6ms idle=601.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] 20:09:30.952 [debug] QUERY OK source="media_items" db=0.4ms idle=10.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 20:09:30.952 [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] 20:09:30.952 [debug] QUERY OK source="settings" db=0.0ms idle=4.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:30.952 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:30.955 [debug] QUERY OK source="media_items" db=1.5ms 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 [35] 20:09:30.956 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:09:30.957 [debug] Current batch of media processed. Will check again in 1000ms 20:09:30.957 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:30.957 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:30.957 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:30.957 [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/af/04/af0465ec2469af613a76f6887d4ac8c55579a13f06bd2dca6a90dd32619cdd5b.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/43/15/4315e91c57de22ccde3348df6c2afaf24a98505ad0696fe40fb85196eff9e8f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:09:31.957 [debug] Current batch of media processed. Will check again in 1000ms 20:09:32.958 [debug] Current batch of media processed. Will check again in 1000ms 20:09:33.959 [debug] Current batch of media processed. Will check again in 1000ms 20:09:34.960 [debug] Current batch of media processed. Will check again in 1000ms 20:09:35.961 [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" => 1, "timestamp" => 1767103216, "title" => "'cut' - cut sections from lines of text - Video Man Pages", "upload_date" => "20251230"} 20:09:35.961 [debug] QUERY OK source="sources" db=0.1ms idle=1615.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:35.962 [debug] QUERY OK source="sources" db=0.0ms idle=1615.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:35.964 [debug] QUERY OK source="media_items" db=2.4ms idle=1615.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-30 14:00:16Z], 35] 20:09:35.966 [debug] QUERY OK source="media_items" db=0.9ms idle=1020.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "47c0f7c8-f11e-458a-b527-02da99b0fadf", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", false, "9hoTL0GP2uQ", 35, [], 283, false, 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, 98, ~U[2025-12-30 14:00:16Z], ~U[2026-01-01 02:09:35Z], ~U[2026-01-01 02:09:35Z], "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", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "9hoTL0GP2uQ", 35, 283, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, ~U[2025-12-30 14:00:16Z]] 20:09:35.966 [debug] QUERY OK source="sources" db=0.1ms idle=19.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:35.966 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:35.967 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1899036] 20:09:35.967 [debug] Current batch of media processed. Will check again in 1000ms 20:09:36.967 [debug] Current batch of media processed. Will check again in 1000ms 20:09:37.969 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 664, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", "id" => "dspEVA8eoUg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dspEVA8eoUg", "playlist_index" => 2, "timestamp" => 1766671272, "title" => "A \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "upload_date" => "20251225"} 20:09:37.969 [debug] QUERY OK source="sources" db=0.1ms idle=622.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:37.970 [debug] QUERY OK source="sources" db=0.0ms idle=623.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:37.972 [debug] QUERY OK source="media_items" db=2.5ms idle=623.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-25 14:01:12Z], 35] 20:09:37.973 [debug] QUERY OK source="media_items" db=0.7ms idle=626.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "5de2e951-71f5-4d38-a4ae-90567d4e3487", "https://www.youtube.com/watch?v=dspEVA8eoUg", false, "dspEVA8eoUg", 35, [], 664, false, 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, false, 98, ~U[2025-12-25 14:01:12Z], ~U[2026-01-01 02:09:37Z], ~U[2026-01-01 02:09:37Z], "Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "https://www.youtube.com/watch?v=dspEVA8eoUg", "dspEVA8eoUg", 35, 664, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, ~U[2025-12-25 14:01:12Z]] 20:09:37.974 [debug] QUERY OK source="sources" db=0.1ms idle=22.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:37.974 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:37.974 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1858950] 20:09:37.974 [debug] Current batch of media processed. Will check again in 1000ms 20:09:38.975 [debug] Current batch of media processed. Will check again in 1000ms 20:09:39.976 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 968, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", "id" => "cQ3auCVzfrA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cQ3auCVzfrA", "playlist_index" => 3, "timestamp" => 1766412066, "title" => "Linux and Open Source Software In 2025", "upload_date" => "20251222"} 20:09:39.977 [debug] QUERY OK source="sources" db=0.2ms idle=630.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:39.977 [debug] QUERY OK source="sources" db=0.1ms idle=631.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:39.980 [debug] QUERY OK source="media_items" db=2.6ms idle=631.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-22 14:01:06Z], 35] 20:09:39.981 [debug] QUERY OK source="media_items" db=0.7ms idle=634.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "0477ba10-4791-4c60-b5c7-2013e9507f6f", "https://www.youtube.com/watch?v=cQ3auCVzfrA", false, "cQ3auCVzfrA", 35, [], 968, false, 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, false, 98, ~U[2025-12-22 14:01:06Z], ~U[2026-01-01 02:09:39Z], ~U[2026-01-01 02:09:39Z], "A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "https://www.youtube.com/watch?v=cQ3auCVzfrA", "cQ3auCVzfrA", 35, 968, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, ~U[2025-12-22 14:01:06Z]] 20:09:39.981 [debug] QUERY OK source="sources" db=0.1ms idle=27.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:39.982 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:39.982 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1835064] 20:09:39.982 [debug] Current batch of media processed. Will check again in 1000ms 20:09:40.983 [debug] Current batch of media processed. Will check again in 1000ms 20:09:41.984 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 1227, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", "id" => "s5ujjhWrGQI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s5ujjhWrGQI", "playlist_index" => 4, "timestamp" => 1766152471, "title" => "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "upload_date" => "20251219"} 20:09:41.985 [debug] QUERY OK source="sources" db=0.1ms idle=638.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:41.985 [debug] QUERY OK source="sources" db=0.0ms idle=638.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:41.988 [debug] QUERY OK source="media_items" db=2.5ms idle=639.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-19 13:54:31Z], 35] 20:09:41.989 [debug] QUERY OK source="media_items" db=0.8ms idle=641.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "655384c8-7052-4350-92e2-c977c125d4c8", "https://www.youtube.com/watch?v=s5ujjhWrGQI", false, "s5ujjhWrGQI", 35, [], 1227, false, 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, false, 98, ~U[2025-12-19 13:54:31Z], ~U[2026-01-01 02:09:41Z], ~U[2026-01-01 02:09:41Z], "Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "https://www.youtube.com/watch?v=s5ujjhWrGQI", "s5ujjhWrGQI", 35, 1227, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, ~U[2025-12-19 13:54:31Z]] 20:09:41.989 [debug] QUERY OK source="sources" db=0.2ms idle=30.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:41.989 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:41.990 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1810884] 20:09:41.990 [debug] Current batch of media processed. Will check again in 1000ms 20:09:42.991 [debug] Current batch of media processed. Will check again in 1000ms 20:09:43.969 [info] {"args":{"id":51},"id":88152,"meta":{},"system_time":1767233383969152481,"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"]} 20:09:43.969 [debug] QUERY OK source="sources" db=0.1ms idle=622.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:43.969 [debug] QUERY OK source="settings" db=0.0ms idle=623.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:09:43.970 [debug] QUERY OK source="media_profiles" db=0.1ms idle=623.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:43.970 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:09:43.970 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 20:09:43.992 [debug] Current batch of media processed. Will check again in 1000ms 20:09:44.241 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:09:44.242 [debug] QUERY OK source="media_items" db=0.4ms idle=272.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, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:09:44.242 [debug] QUERY OK source="media_items" db=0.4ms idle=272.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")))) [51] 20:09:44.243 [debug] QUERY OK source="tasks" db=0.1ms idle=273.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88158, 51, ~U[2026-01-01 02:09:44Z], ~U[2026-01-01 02:09:44Z]] 20:09:44.244 [info] {"args":{"id":51},"id":88152,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":274659,"event":"job:stop","queue_time":787139,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 20:09:44.994 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 802, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", "id" => "f5_JlqPkmWc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=f5_JlqPkmWc", "playlist_index" => 5, "timestamp" => 1765893675, "title" => "Open Source Apps So Good, I'd Pay For Them!", "upload_date" => "20251216"} 20:09:44.995 [debug] QUERY OK source="sources" db=0.3ms idle=751.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:44.995 [debug] QUERY OK source="sources" db=0.2ms idle=751.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:44.998 [debug] QUERY OK source="media_items" db=2.5ms idle=751.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 14:01:15Z], 35] 20:09:44.999 [debug] QUERY OK source="media_items" db=0.8ms idle=748.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "1260c007-b13f-4949-871c-5f21ea8d923b", "https://www.youtube.com/watch?v=f5_JlqPkmWc", false, "f5_JlqPkmWc", 35, [], 802, false, 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, false, 98, ~U[2025-12-16 14:01:15Z], ~U[2026-01-01 02:09:44Z], ~U[2026-01-01 02:09:44Z], "It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "https://www.youtube.com/watch?v=f5_JlqPkmWc", "f5_JlqPkmWc", 35, 802, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, ~U[2025-12-16 14:01:15Z]] 20:09:44.999 [debug] QUERY OK source="sources" db=0.1ms idle=34.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:09:45.000 [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] 20:09:45.000 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1787419] 20:09:45.000 [debug] Current batch of media processed. Will check again in 1000ms 20:09:46.001 [debug] Current batch of media processed. Will check again in 1000ms 20:09:47.002 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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" => 595, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", "id" => "B6Dbvs-q1zw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=B6Dbvs-q1zw", "playlist_index" => 6, "timestamp" => 1765634419, "title" => "Setting Up Virt-Manager On Linux", "upload_date" => "20251213"} 20:09:47.003 [debug] QUERY OK source="sources" db=0.2ms idle=656.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:47.003 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [35] 20:09:47.006 [debug] QUERY OK source="media_items" db=2.4ms idle=657.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-13 14:00:19Z], 35] 20:09:47.007 [debug] QUERY OK source="media_items" db=0.7ms idle=659.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "1fbd8ac1-0454-4d50-b13e-8cc708aa3be6", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", false, "B6Dbvs-q1zw", 35, [], 595, false, 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, false, 98, ~U[2025-12-13 14:00:19Z], ~U[2026-01-01 02:09:47Z], ~U[2026-01-01 02:09:47Z], "Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", "B6Dbvs-q1zw", 35, 595, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, ~U[2025-12-13 14:00:19Z]] 20:09:47.007 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:47.008 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:47.008 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1763736] 20:09:47.008 [debug] Current batch of media processed. Will check again in 1000ms 20:09:47.642 [info] {"source":"oban","duration":3993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:48.009 [debug] Current batch of media processed. Will check again in 1000ms 20:09:49.010 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 1292, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", "id" => "cTmvp0tnUmY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cTmvp0tnUmY", "playlist_index" => 7, "timestamp" => 1765375270, "title" => "Two Simple Bash Scripts ('append' and 'prepend')", "upload_date" => "20251210"} 20:09:49.011 [debug] QUERY OK source="sources" db=0.1ms idle=1041.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:49.011 [debug] QUERY OK source="sources" db=0.1ms idle=664.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:49.013 [debug] QUERY OK source="media_items" db=2.4ms idle=664.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-10 14:01:10Z], 35] 20:09:49.016 [debug] QUERY OK source="media_items" db=2.1ms idle=667.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "aa3f2618-06e7-4f7c-b81c-c18f19e78ce9", "https://www.youtube.com/watch?v=cTmvp0tnUmY", false, "cTmvp0tnUmY", 35, [], 1292, false, 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, false, 98, ~U[2025-12-10 14:01:10Z], ~U[2026-01-01 02:09:49Z], ~U[2026-01-01 02:09:49Z], "Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "https://www.youtube.com/watch?v=cTmvp0tnUmY", "cTmvp0tnUmY", 35, 1292, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, ~U[2025-12-10 14:01:10Z]] 20:09:49.016 [debug] QUERY OK source="sources" db=0.3ms idle=45.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:09:49.017 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:49.017 [debug] QUERY OK source="media_items" db=0.1ms 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 [1739901] 20:09:49.017 [debug] Current batch of media processed. Will check again in 1000ms 20:09:50.018 [debug] Current batch of media processed. Will check again in 1000ms 20:09:51.019 [debug] Current batch of media processed. Will check again in 1000ms 20:09:52.020 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 881, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", "id" => "lzSvFAGV3ms", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lzSvFAGV3ms", "playlist_index" => 8, "timestamp" => 1765116079, "title" => "Tweaking The Look Of The Qtile Panel", "upload_date" => "20251207"} 20:09:52.021 [debug] QUERY OK source="sources" db=0.1ms idle=1674.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:52.021 [debug] QUERY OK source="sources" db=0.1ms idle=1674.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:52.024 [debug] QUERY OK source="media_items" db=2.6ms idle=1674.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-07 14:01:19Z], 35] 20:09:52.025 [debug] QUERY OK source="media_items" db=0.8ms idle=1050.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "17aa796c-3452-4b56-856f-c8583e7a1b5a", "https://www.youtube.com/watch?v=lzSvFAGV3ms", false, "lzSvFAGV3ms", 35, [], 881, false, 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, false, 98, ~U[2025-12-07 14:01:19Z], ~U[2026-01-01 02:09:52Z], ~U[2026-01-01 02:09:52Z], "Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "https://www.youtube.com/watch?v=lzSvFAGV3ms", "lzSvFAGV3ms", 35, 881, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, ~U[2025-12-07 14:01:19Z]] 20:09:52.025 [debug] QUERY OK source="sources" db=0.1ms idle=50.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:09:52.025 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:52.026 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1716297] 20:09:52.026 [debug] Current batch of media processed. Will check again in 1000ms 20:09:53.026 [debug] Current batch of media processed. Will check again in 1000ms 20:09:54.027 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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" => 265, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", "id" => "sbGetz7R_nY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sbGetz7R_nY", "playlist_index" => 9, "timestamp" => 1764856898, "title" => "'tac' - concatenate and print in reverse - Video Man Pages", "upload_date" => "20251204"} 20:09:54.028 [debug] QUERY OK source="sources" db=0.2ms idle=681.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:54.028 [debug] QUERY OK source="sources" db=0.1ms idle=681.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:54.031 [debug] QUERY OK source="media_items" db=2.4ms idle=682.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-04 14:01:38Z], 35] 20:09:54.032 [debug] QUERY OK source="media_items" db=0.8ms idle=684.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "ec1bde9a-8ee8-412a-83b4-af45f0426129", "https://www.youtube.com/watch?v=sbGetz7R_nY", false, "sbGetz7R_nY", 35, [], 265, false, 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, false, 98, ~U[2025-12-04 14:01:38Z], ~U[2026-01-01 02:09:54Z], ~U[2026-01-01 02:09:54Z], "The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "https://www.youtube.com/watch?v=sbGetz7R_nY", "sbGetz7R_nY", 35, 265, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, ~U[2025-12-04 14:01:38Z]] 20:09:54.032 [debug] QUERY OK source="sources" db=0.1ms idle=53.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:09:54.032 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:54.033 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1692095] 20:09:54.033 [debug] Current batch of media processed. Will check again in 1000ms 20:09:55.033 [debug] Current batch of media processed. Will check again in 1000ms 20:09:56.034 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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" => 423, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", "id" => "HKuP4UjG9_U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HKuP4UjG9_U", "playlist_index" => 10, "timestamp" => 1764684023, "title" => "'cat' - concatenate and print files - Video Man Pages", "upload_date" => "20251202"} 20:09:56.035 [debug] QUERY OK source="sources" db=0.3ms idle=688.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:56.035 [debug] QUERY OK source="sources" db=0.0ms idle=689.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:56.038 [debug] QUERY OK source="media_items" db=2.4ms idle=689.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-02 14:00:23Z], 35] 20:09:56.039 [debug] QUERY OK source="media_items" db=1.0ms idle=691.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "b7232e0e-dd08-42b8-a705-452c0719e1a1", "https://www.youtube.com/watch?v=HKuP4UjG9_U", false, "HKuP4UjG9_U", 35, [], 423, false, 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, false, 98, ~U[2025-12-02 14:00:23Z], ~U[2026-01-01 02:09:56Z], ~U[2026-01-01 02:09:56Z], "The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "https://www.youtube.com/watch?v=HKuP4UjG9_U", "HKuP4UjG9_U", 35, 423, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, ~U[2025-12-02 14:00:23Z]] 20:09:56.039 [debug] QUERY OK source="sources" db=0.1ms idle=56.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:09:56.040 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:56.040 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1676558] 20:09:56.040 [debug] Current batch of media processed. Will check again in 1000ms 20:09:57.041 [debug] Current batch of media processed. Will check again in 1000ms 20:09:58.042 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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" => 1090, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", "id" => "hQsQJ7uhDGA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hQsQJ7uhDGA", "playlist_index" => 11, "timestamp" => 1764252078, "title" => "I use CachyOS, btw!", "upload_date" => "20251127"} 20:09:58.043 [debug] QUERY OK source="sources" db=0.2ms idle=696.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:09:58.043 [debug] QUERY OK source="sources" db=0.1ms idle=696.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:09:58.046 [debug] QUERY OK source="media_items" db=2.6ms idle=696.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-27 14:01:18Z], 35] 20:09:58.047 [debug] QUERY OK source="media_items" db=0.8ms idle=699.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "818d7e90-890f-495b-be23-ff93c5012fb4", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", false, "hQsQJ7uhDGA", 35, [], 1090, false, 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, false, 98, ~U[2025-11-27 14:01:18Z], ~U[2026-01-01 02:09:58Z], ~U[2026-01-01 02:09:58Z], "So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", "hQsQJ7uhDGA", 35, 1090, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, ~U[2025-11-27 14:01:18Z]] 20:09:58.047 [debug] QUERY OK source="sources" db=0.1ms idle=61.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:09:58.047 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:09:58.048 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1637457] 20:09:58.048 [debug] Current batch of media processed. Will check again in 1000ms 20:09:59.048 [debug] Current batch of media processed. Will check again in 1000ms 20:10:00.049 [debug] Current batch of media processed. Will check again in 1000ms 20:10:00.892 [info] {"source":"oban","duration":224,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:10:01.050 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 320, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", "id" => "2g-ceq7Jwc0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2g-ceq7Jwc0", "playlist_index" => 12, "timestamp" => 1763992807, "title" => "Cavalier Is An Audio Visualizer For Linux", "upload_date" => "20251124"} 20:10:01.051 [debug] QUERY OK source="sources" db=0.1ms idle=1704.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:01.051 [debug] QUERY OK source="sources" db=0.0ms idle=1704.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:01.053 [debug] QUERY OK source="media_items" db=2.4ms idle=1062.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-24 14:00:07Z], 35] 20:10:01.055 [debug] QUERY OK source="media_items" db=0.7ms idle=162.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "6d9b14f4-5d3d-4cd5-acdf-836695173d5e", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", false, "2g-ceq7Jwc0", 35, [], 320, false, 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, false, 98, ~U[2025-11-24 14:00:07Z], ~U[2026-01-01 02:10:01Z], ~U[2026-01-01 02:10:01Z], "Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", "2g-ceq7Jwc0", 35, 320, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, ~U[2025-11-24 14:00:07Z]] 20:10:01.055 [debug] QUERY OK source="sources" db=0.1ms idle=64.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:01.055 [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] 20:10:01.055 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1614035] 20:10:01.056 [debug] Current batch of media processed. Will check again in 1000ms 20:10:02.056 [debug] Current batch of media processed. Will check again in 1000ms 20:10:03.057 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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" => 572, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", "id" => "JMIQwysKk1c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JMIQwysKk1c", "playlist_index" => 13, "timestamp" => 1763733626, "title" => "'touch' - change file timestamps - Video Man Pages", "upload_date" => "20251121"} 20:10:03.058 [debug] QUERY OK source="sources" db=0.1ms idle=711.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:03.058 [debug] QUERY OK source="sources" db=0.0ms idle=711.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:03.061 [debug] QUERY OK source="media_items" db=2.4ms idle=711.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 14:00:26Z], 35] 20:10:03.062 [debug] QUERY OK source="media_items" db=1.1ms idle=714.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "316ef4e2-a72b-43c9-966b-cf1f27ee1b68", "https://www.youtube.com/watch?v=JMIQwysKk1c", false, "JMIQwysKk1c", 35, [], 572, false, 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, false, 98, ~U[2025-11-21 14:00:26Z], ~U[2026-01-01 02:10:03Z], ~U[2026-01-01 02:10:03Z], "The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "https://www.youtube.com/watch?v=JMIQwysKk1c", "JMIQwysKk1c", 35, 572, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, ~U[2025-11-21 14:00:26Z]] 20:10:03.062 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:03.063 [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] 20:10:03.063 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1590315] 20:10:03.063 [debug] Current batch of media processed. Will check again in 1000ms 20:10:04.064 [debug] Current batch of media processed. Will check again in 1000ms 20:10:05.065 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 1336, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", "id" => "vH-iCfqfLU8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vH-iCfqfLU8", "playlist_index" => 14, "timestamp" => 1763474499, "title" => "Hey, DT! It's Nice To See You Screw Things Up...", "upload_date" => "20251118"} 20:10:05.066 [debug] QUERY OK source="sources" db=0.1ms idle=719.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:05.066 [debug] QUERY OK source="sources" db=0.1ms idle=719.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:05.069 [debug] QUERY OK source="media_items" db=2.8ms idle=720.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-18 14:01:39Z], 35] 20:10:05.071 [debug] QUERY OK source="media_items" db=1.1ms idle=723.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "1b7bc6b0-67c3-4520-81b3-6fefb3ca0492", "https://www.youtube.com/watch?v=vH-iCfqfLU8", false, "vH-iCfqfLU8", 35, [], 1336, false, 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, false, 98, ~U[2025-11-18 14:01:39Z], ~U[2026-01-01 02:10:05Z], ~U[2026-01-01 02:10:05Z], "On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "https://www.youtube.com/watch?v=vH-iCfqfLU8", "vH-iCfqfLU8", 35, 1336, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, ~U[2025-11-18 14:01:39Z]] 20:10:05.071 [debug] QUERY OK source="sources" db=0.1ms idle=75.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:10:05.071 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:05.072 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1568007] 20:10:05.072 [debug] Current batch of media processed. Will check again in 1000ms 20:10:06.072 [debug] Current batch of media processed. Will check again in 1000ms 20:10:07.073 [debug] Current batch of media processed. Will check again in 1000ms 20:10:08.074 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 469, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", "id" => "0jqPu31ZvOc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0jqPu31ZvOc", "playlist_index" => 15, "timestamp" => 1763215202, "title" => "Send Files Over Local Network With LocalSend", "upload_date" => "20251115"} 20:10:08.075 [debug] QUERY OK source="sources" db=0.1ms 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] 20:10:08.075 [debug] QUERY OK source="sources" db=0.1ms idle=1728.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:08.077 [debug] QUERY OK source="media_items" db=2.4ms idle=1728.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-15 14:00:02Z], 35] 20:10:08.080 [debug] QUERY OK source="media_items" db=1.7ms idle=1079.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "212a6d9d-209d-4b20-a6b2-a0f4879d95ab", "https://www.youtube.com/watch?v=0jqPu31ZvOc", false, "0jqPu31ZvOc", 35, [], 469, false, 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, false, 98, ~U[2025-11-15 14:00:02Z], ~U[2026-01-01 02:10:08Z], ~U[2026-01-01 02:10:08Z], "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "https://www.youtube.com/watch?v=0jqPu31ZvOc", "0jqPu31ZvOc", 35, 469, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, ~U[2025-11-15 14:00:02Z]] 20:10:08.080 [debug] QUERY OK source="sources" db=0.1ms idle=80.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:08.080 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:08.080 [debug] QUERY OK source="media_items" db=0.1ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1540920] 20:10:08.081 [debug] Current batch of media processed. Will check again in 1000ms 20:10:09.081 [debug] Current batch of media processed. Will check again in 1000ms 20:10:10.083 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 251, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", "id" => "H7W4k9YXKGM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=H7W4k9YXKGM", "playlist_index" => 16, "timestamp" => 1762956028, "title" => "These Linux Apps Keep Me From Going Back To Windows", "upload_date" => "20251112"} 20:10:10.083 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=737.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:10.084 [debug] QUERY OK source="sources" db=0.0ms idle=737.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:10.086 [debug] QUERY OK source="media_items" db=2.4ms idle=737.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 14:00:28Z], 35] 20:10:10.087 [debug] QUERY OK source="media_items" db=0.7ms idle=740.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "45bf5f80-d341-40a5-9185-6aff301b5714", "https://www.youtube.com/watch?v=H7W4k9YXKGM", false, "H7W4k9YXKGM", 35, [], 251, false, 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, false, 98, ~U[2025-11-12 14:00:28Z], ~U[2026-01-01 02:10:10Z], ~U[2026-01-01 02:10:10Z], "Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "https://www.youtube.com/watch?v=H7W4k9YXKGM", "H7W4k9YXKGM", 35, 251, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, ~U[2025-11-12 14:00:28Z]] 20:10:10.088 [debug] QUERY OK source="sources" db=0.1ms idle=84.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:10.088 [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] 20:10:10.088 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1517101] 20:10:10.088 [debug] Current batch of media processed. Will check again in 1000ms 20:10:11.089 [debug] Current batch of media processed. Will check again in 1000ms 20:10:12.090 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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" => 918, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", "id" => "p9dmUn4IeT4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=p9dmUn4IeT4", "playlist_index" => 17, "timestamp" => 1762696878, "title" => "A Quick First Look At Fedora 43", "upload_date" => "20251109"} 20:10:12.091 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=744.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:12.091 [debug] QUERY OK source="sources" db=0.1ms idle=745.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:12.094 [debug] QUERY OK source="media_items" db=2.4ms idle=745.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-09 14:01:18Z], 35] 20:10:12.095 [debug] QUERY OK source="media_items" db=0.8ms idle=748.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "1a01fb5b-366f-4f5c-a06a-7aea22d07dfd", "https://www.youtube.com/watch?v=p9dmUn4IeT4", false, "p9dmUn4IeT4", 35, [], 918, false, 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, false, 98, ~U[2025-11-09 14:01:18Z], ~U[2026-01-01 02:10:12Z], ~U[2026-01-01 02:10:12Z], "In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "https://www.youtube.com/watch?v=p9dmUn4IeT4", "p9dmUn4IeT4", 35, 918, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, ~U[2025-11-09 14:01:18Z]] 20:10:12.096 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:12.096 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:12.096 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1493725] 20:10:12.096 [debug] Current batch of media processed. Will check again in 1000ms 20:10:13.097 [debug] Current batch of media processed. Will check again in 1000ms 20:10:14.098 [debug] Current batch of media processed. Will check again in 1000ms 20:10:15.100 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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" => 582, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", "id" => "Tu_pKh51kcM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Tu_pKh51kcM", "playlist_index" => 18, "timestamp" => 1762437662, "title" => "The Fragmentation Problem Within Linux - Is It Real Or Fake News?", "upload_date" => "20251106"} 20:10:15.100 [debug] QUERY OK source="sources" db=0.1ms idle=1753.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:15.100 [debug] QUERY OK source="sources" db=0.0ms idle=1754.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:15.103 [debug] QUERY OK source="media_items" db=2.4ms idle=1754.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-06 14:01:02Z], 35] 20:10:15.104 [debug] QUERY OK source="media_items" db=0.8ms idle=1094.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "b16fba4c-574c-4c1e-b0d5-1f8ddf084a6f", "https://www.youtube.com/watch?v=Tu_pKh51kcM", false, "Tu_pKh51kcM", 35, [], 582, false, 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, false, 98, ~U[2025-11-06 14:01:02Z], ~U[2026-01-01 02:10:15Z], ~U[2026-01-01 02:10:15Z], "Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "https://www.youtube.com/watch?v=Tu_pKh51kcM", "Tu_pKh51kcM", 35, 582, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, ~U[2025-11-06 14:01:02Z]] 20:10:15.104 [debug] QUERY OK source="sources" db=0.1ms idle=94.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:10:15.105 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:15.105 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1470625] 20:10:15.105 [debug] Current batch of media processed. Will check again in 1000ms 20:10:16.106 [debug] Current batch of media processed. Will check again in 1000ms 20:10:17.107 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "duration" => 781, "filename" => "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", "id" => "7OSUgn0f6VU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7OSUgn0f6VU", "playlist_index" => 19, "timestamp" => 1762178418, "title" => "TRMNL Is An Open Source E Ink Display", "upload_date" => "20251103"} 20:10:17.108 [debug] QUERY OK source="sources" db=0.2ms idle=761.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:17.108 [debug] QUERY OK source="sources" db=0.1ms idle=762.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:17.111 [debug] QUERY OK source="media_items" db=2.5ms idle=762.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-03 14:00:18Z], 35] 20:10:17.112 [debug] QUERY OK source="media_items" db=1.0ms idle=765.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "335239fe-3b86-4cf4-ba78-6fb4c6db5631", "https://www.youtube.com/watch?v=7OSUgn0f6VU", false, "7OSUgn0f6VU", 35, [], 781, false, 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, false, 98, ~U[2025-11-03 14:00:18Z], ~U[2026-01-01 02:10:17Z], ~U[2026-01-01 02:10:17Z], "TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "https://www.youtube.com/watch?v=7OSUgn0f6VU", "7OSUgn0f6VU", 35, 781, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, ~U[2025-11-03 14:00:18Z]] 20:10:17.113 [debug] QUERY OK source="sources" db=0.1ms idle=99.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:17.113 [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] 20:10:17.113 [debug] QUERY OK source="media_items" db=0.1ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1447387] 20:10:17.113 [debug] Current batch of media processed. Will check again in 1000ms 20:10:17.647 [info] {"source":"oban","duration":3742,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:10:18.114 [debug] Current batch of media processed. Will check again in 1000ms 20:10:19.115 [debug] Current batch of media processed. Will check again in 1000ms 20:10:19.395 [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/af/04/af0465ec2469af613a76f6887d4ac8c55579a13f06bd2dca6a90dd32619cdd5b.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/43/15/4315e91c57de22ccde3348df6c2afaf24a98505ad0696fe40fb85196eff9e8f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:10:19.395 [debug] Gracefully stopping file follower 20:10:19.396 [debug] QUERY OK source="sources" db=0.1ms idle=1049.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:19.396 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [35] 20:10:19.399 [debug] QUERY OK source="media_items" db=2.6ms idle=1049.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-30 14:00:16Z], 35] 20:10:19.400 [debug] QUERY OK source="media_items" db=1.0ms idle=383.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "83efcfce-457d-4dde-8423-5101fa294fbb", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", false, "9hoTL0GP2uQ", 35, [], 283, false, 1, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, false, 98, ~U[2025-12-30 14:00:16Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "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", "https://www.youtube.com/watch?v=9hoTL0GP2uQ", "9hoTL0GP2uQ", 35, 283, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e123000_'cut' - cut sections from lines of text - Video Man Pages.mp4", false, ~U[2025-12-30 14:00:16Z]] 20:10:19.400 [debug] QUERY OK source="sources" db=0.1ms idle=54.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:19.403 [debug] QUERY OK source="media_items" db=2.3ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 14:01:12Z], 35] 20:10:19.404 [debug] QUERY OK source="media_items" db=0.8ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "f2b83103-97fd-44be-870c-cfeb264d773a", "https://www.youtube.com/watch?v=dspEVA8eoUg", false, "dspEVA8eoUg", 35, [], 664, false, 2, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, false, 98, ~U[2025-12-25 14:01:12Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Fresh is a terminal text editor you can just use. It's lightweight, fast and easy to learn. It includes features such as tabs, splits, LSP support and a file tree!\n\nREFERENCED:\n► https://sinelaw.github.io/fresh/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 \"Fresh\" New Terminal Text Editor (Better Than Nano!)", "https://www.youtube.com/watch?v=dspEVA8eoUg", "dspEVA8eoUg", 35, 664, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122500_A "Fresh" New Terminal Text Editor (Better Than Nano!).mp4", false, ~U[2025-12-25 14:01:12Z]] 20:10:19.404 [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" = ?) [35] 20:10:19.407 [debug] QUERY OK source="media_items" db=2.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-12-22 14:01:06Z], 35] 20:10:19.408 [debug] QUERY OK source="media_items" db=0.7ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "5fa5231a-d949-4b27-95db-3cd630e8c893", "https://www.youtube.com/watch?v=cQ3auCVzfrA", false, "cQ3auCVzfrA", 35, [], 968, false, 3, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, false, 98, ~U[2025-12-22 14:01:06Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "A quick look back at 2025 for Linux, FOSS, A.I. and YouTube. Also...Merry Christmas and Happy New Year! :D\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Linux and Open Source Software In 2025", "https://www.youtube.com/watch?v=cQ3auCVzfrA", "cQ3auCVzfrA", 35, 968, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e122200_Linux and Open Source Software In 2025.mp4", false, ~U[2025-12-22 14:01:06Z]] 20:10:19.409 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.411 [debug] QUERY OK source="media_items" db=2.2ms 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-19 13:54:31Z], 35] 20:10:19.412 [debug] QUERY OK source="media_items" db=1.0ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "e04e4189-a228-4661-b9d1-f8effea04b03", "https://www.youtube.com/watch?v=s5ujjhWrGQI", false, "s5ujjhWrGQI", 35, [], 1227, false, 4, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, false, 98, ~U[2025-12-19 13:54:31Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Xonsh is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from Bash and IPython. It works on all major systems including Linux, OSX, and Windows. Xonsh is meant for the daily use of experts and novices.\n\nREFERENCED:\n► https://xon.sh/\n\nMY XONSH CONFIG:\n► https://gitlab.com/dwt1/dotfiles/-/blob/master/.config/xonsh/rc.d/rc.py?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux)", "https://www.youtube.com/watch?v=s5ujjhWrGQI", "s5ujjhWrGQI", 35, 1227, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121900_Xonsh Is A Modern Shell Powered By Python (Windows, Mac & Linux).mp4", false, ~U[2025-12-19 13:54:31Z]] 20:10:19.413 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.415 [debug] QUERY OK source="media_items" db=2.2ms 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-12-16 14:01:15Z], 35] 20:10:19.416 [debug] QUERY OK source="media_items" db=0.7ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "c36df92e-04ea-4b74-9fc8-a9d63a8e8b34", "https://www.youtube.com/watch?v=f5_JlqPkmWc", false, "f5_JlqPkmWc", 35, [], 802, false, 5, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, false, 98, ~U[2025-12-16 14:01:15Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "It's that time of year when many open source projects ask for your donations. If you depend on free and open source software, please give a few bucks to those projects.\n\nREFERENCED:\nhttps://www.makeuseof.com/open-source-apps-so-good-happily-pay/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Open Source Apps So Good, I'd Pay For Them!", "https://www.youtube.com/watch?v=f5_JlqPkmWc", "f5_JlqPkmWc", 35, 802, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121600_Open Source Apps So Good, I'd Pay For Them!.mp4", false, ~U[2025-12-16 14:01:15Z]] 20:10:19.417 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.419 [debug] QUERY OK source="media_items" db=2.2ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-13 14:00:19Z], 35] 20:10:19.420 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "a4ce285d-b9b7-47cf-9965-50eb71120dc5", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", false, "B6Dbvs-q1zw", 35, [], 595, false, 6, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, false, 98, ~U[2025-12-13 14:00:19Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Virt-Manager (Virtual Machine Manager) is a popular graphical desktop application for managing virtual machines and containers on Linux, acting as a user-friendly frontend for the libvirt virtualization API. It allows users to easily create, run, and manage VMs without complex command-line work. \n\nREFERENCED:\n► https://virt-manager.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!", "Setting Up Virt-Manager On Linux", "https://www.youtube.com/watch?v=B6Dbvs-q1zw", "B6Dbvs-q1zw", 35, 595, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121300_Setting Up Virt-Manager On Linux.mp4", false, ~U[2025-12-13 14:00:19Z]] 20:10:19.421 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.423 [debug] QUERY OK source="media_items" db=2.2ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 14:01:10Z], 35] 20:10:19.424 [debug] QUERY OK source="media_items" db=0.7ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "b1c5b229-ff40-4252-a335-36673400d500", "https://www.youtube.com/watch?v=cTmvp0tnUmY", false, "cTmvp0tnUmY", 35, [], 1292, false, 7, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, false, 98, ~U[2025-12-10 14:01:10Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Let's create a couple of simple Bash scripts, one for appending a line of text to a file, and one for prepending a line of text to a file.\n\nREFERENCED:\n► https://gitlab.com/dwt1/miniutils\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Two Simple Bash Scripts ('append' and 'prepend')", "https://www.youtube.com/watch?v=cTmvp0tnUmY", "cTmvp0tnUmY", 35, 1292, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e121000_Two Simple Bash Scripts ('append' and 'prepend').mp4", false, ~U[2025-12-10 14:01:10Z]] 20:10:19.425 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.427 [debug] QUERY OK source="media_items" db=2.1ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 14:01:19Z], 35] 20:10:19.428 [debug] QUERY OK source="media_items" db=0.7ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "6516d52e-b4c9-4371-af42-16b727555a42", "https://www.youtube.com/watch?v=lzSvFAGV3ms", false, "lzSvFAGV3ms", 35, [], 881, false, 8, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, false, 98, ~U[2025-12-07 14:01:19Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Recently, I had to do a fresh install on my office workstation. I moved from Arch over to CachyOS. And along the way, my qtile config seems a bit messy. So let's clean it up!\n\nREFERENCED:\n► https://gitlab.com/dwt1/dotfiles/-/tree/master/.config/qtile?ref_type=heads\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Tweaking The Look Of The Qtile Panel", "https://www.youtube.com/watch?v=lzSvFAGV3ms", "lzSvFAGV3ms", 35, 881, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120700_Tweaking The Look Of The Qtile Panel.mp4", false, ~U[2025-12-07 14:01:19Z]] 20:10:19.429 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.431 [debug] QUERY OK source="media_items" db=2.1ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 14:01:38Z], 35] 20:10:19.432 [debug] QUERY OK source="media_items" db=0.8ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "116e3baf-7e12-4541-b0f8-71adfe9b5efe", "https://www.youtube.com/watch?v=sbGetz7R_nY", false, "sbGetz7R_nY", 35, [], 265, false, 9, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, false, 98, ~U[2025-12-04 14:01:38Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "The 'tac' command is used to concatenate files and print them in reverse.\n\n- Print the contents of a file in reverse (by line) to stdout:\n tac path/to/file\n\n- Concatenate specific files in reverse:\n tac file1 path/to/file2 ...\n\n- Display stdin in reversed order:\n printf \"one\\ntwo\\nthree\\n\" | tac\n\n- Use a specific separator rather than the new line:\n tac -s separator path/to/file1 path/to/file2 ...\n\n- Use a specific regex as a separator:\n tac -r -s 'regex' path/to/file1 path/to/file2 ...\n\n EXAMPLE: tac -r -s 'x\\|[^x]' file1\n This matches either the character 'x' OR any character that is not 'x', effectively matching every character in the file.\n\n- Use a separator (new line by default) before each file:\n tac -b file1 file2 ...\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!", "'tac' - concatenate and print in reverse - Video Man Pages", "https://www.youtube.com/watch?v=sbGetz7R_nY", "sbGetz7R_nY", 35, 265, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120400_'tac' - concatenate and print in reverse - Video Man Pages.mp4", false, ~U[2025-12-04 14:01:38Z]] 20:10:19.433 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.435 [debug] QUERY OK source="media_items" db=2.2ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-02 14:00:23Z], 35] 20:10:19.436 [debug] QUERY OK source="media_items" db=0.7ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "c03a03e9-5f1e-4f9e-8ec6-933a13b5edbd", "https://www.youtube.com/watch?v=HKuP4UjG9_U", false, "HKuP4UjG9_U", 35, [], 423, false, 10, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, false, 98, ~U[2025-12-02 14:00:23Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "The 'cat' command is used to concatenate and print files.\n\nNOTE: The commands used in this video could not be printed in the show description because YouTube does not allow angle brackets to be used in show descriptions. Go to the 'vidman' repo to view the commands used in this video.\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!", "'cat' - concatenate and print files - Video Man Pages", "https://www.youtube.com/watch?v=HKuP4UjG9_U", "HKuP4UjG9_U", 35, 423, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e120200_'cat' - concatenate and print files - Video Man Pages.mp4", false, ~U[2025-12-02 14:00:23Z]] 20:10:19.436 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.439 [debug] QUERY OK source="media_items" db=2.1ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-27 14:01:18Z], 35] 20:10:19.440 [debug] QUERY OK source="media_items" db=0.7ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "2f754ed3-be41-4bfe-a62a-b1d17dd12c54", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", false, "hQsQJ7uhDGA", 35, [], 1090, false, 11, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, false, 98, ~U[2025-11-27 14:01:18Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "So I've had the same installation of Arch running for about 2-3 years now, I was experiencing some serious issues, especially with recording audio. So I decided to hop away from Arch and move to CachyOS. And...I still had issues. \n\nREFERENCED:\n► https://cachyos.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!", "I use CachyOS, btw!", "https://www.youtube.com/watch?v=hQsQJ7uhDGA", "hQsQJ7uhDGA", 35, 1090, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112700_I use CachyOS, btw!.mp4", false, ~U[2025-11-27 14:01:18Z]] 20:10:19.440 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [35] 20:10:19.442 [debug] QUERY OK source="media_items" db=2.1ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-24 14:00:07Z], 35] 20:10:19.445 [debug] QUERY OK source="media_items" db=2.2ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "68935060-5d13-4a81-b7cc-25a168185dec", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", false, "2g-ceq7Jwc0", 35, [], 320, false, 12, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, false, 98, ~U[2025-11-24 14:00:07Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Cavalier is a neat little app that is an audio visualizer. In other words, when you play music or video or anything with audio...it draws some fancy visualizations as eye candy.\n\nREFERENCED:\n► https://github.com/NickvisionApps/Cavalier\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Cavalier Is An Audio Visualizer For Linux", "https://www.youtube.com/watch?v=2g-ceq7Jwc0", "2g-ceq7Jwc0", 35, 320, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112400_Cavalier Is An Audio Visualizer For Linux.mp4", false, ~U[2025-11-24 14:00:07Z]] 20:10:19.446 [debug] QUERY OK source="sources" db=0.4ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.448 [debug] QUERY OK source="media_items" db=2.2ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-21 14:00:26Z], 35] 20:10:19.449 [debug] QUERY OK source="media_items" db=1.0ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "2e25c492-a0b3-438e-9626-ebeb6a12fcda", "https://www.youtube.com/watch?v=JMIQwysKk1c", false, "JMIQwysKk1c", 35, [], 572, false, 13, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, false, 98, ~U[2025-11-21 14:00:26Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "The 'touch' command is used to change file timestamps or to create empty files.\n\n- Create empty files:\n touch file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one:\n touch -a|m file1 file2 ...\n\n- Set file [a]ccess or [m]odification times to the current one but \"don't create\" files if they don't exist:\n touch -c -a|m file1 file2 ...\n NOTE Use 'stat file1' to view file info.\n\n- Set the file [t]ime to a specific value and don't create file if it doesn't exist:\n touch -c -t YYYYMMDDHHMM.SS file1\n NOTE: touch -c -t 202511160813.00 file1\n\n- Set the files' timestamp to the reference file's timestamp:\n touch -r reference_file file1 file2 ...\n\n- Set the timestamp by parsing a string:\n touch -d \"last year|5 hours|next thursday|nov 14|...\" file1\n\n- Create multiple files with an increasing number:\n touch file{1..10}\n\n- Create multiple files with a letter range:\n touch file{a..z}\n\n- Cat a file that containts a list of filenames into touch:\n NOTE The file named \"list\" contains the following...\n #+begin_example\n file1.txt\n file2.txt\n file3.txt\n #+end_example\n cat list | xargs touch\n -OR-\n touch $(cat list)\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!", "'touch' - change file timestamps - Video Man Pages", "https://www.youtube.com/watch?v=JMIQwysKk1c", "JMIQwysKk1c", 35, 572, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e112100_'touch' - change file timestamps - Video Man Pages.mp4", false, ~U[2025-11-21 14:00:26Z]] 20:10:19.450 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [35] 20:10:19.452 [debug] QUERY OK source="media_items" db=2.1ms 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[2025-11-18 14:01:39Z], 35] 20:10:19.453 [debug] QUERY OK source="media_items" db=1.0ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "d4b71f83-62e6-494b-831d-2e33b911010c", "https://www.youtube.com/watch?v=vH-iCfqfLU8", false, "vH-iCfqfLU8", 35, [], 1336, false, 14, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, false, 98, ~U[2025-11-18 14:01:39Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "On this edition of HEY DT:\n0:00 Intro\n0:20 It's nice to see someone that actually shows when things dont go according to the plans sometimes. Have been holding off on modernizing my sources list for some weeks now...\n1:51 I feel the answer is one of those Yes AND No. I think choice is great...it becomes a deficit when developers claim this as to why they won't make apps for Linux. The truth, as in most cases, is this is NOT really a valid excuse. Devs could decide to package their apps in a format like Flatpak...\n4:36 A Hey DT podcast would be great, except ffmpeg already makes podcasts for me.\n6:34 Since a lot of your viewers are people who sit in front of computers alot, it should be a good idea to make a video about all of diseases that come with such a life style...\n9:34 Feature request. It would be awesome if you made a video series on how to become a YouTuber using only Linux software. Preferably FOSS only...\n12:49 What are you using now that Arco is no more? Did you move to Kiro to stay with Erik?\n15:07 Something that has caught my interest as of late is the idea of installing Debian \"the Arch way\" by using debootstrap...\n21:19 I am completely redoing my system and have decided to give emacs a real go instead of vim/neovim. I am not using doom or evil mode though..I want to use emacs, not vim/emacs.\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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! It's Nice To See You Screw Things Up...", "https://www.youtube.com/watch?v=vH-iCfqfLU8", "vH-iCfqfLU8", 35, 1336, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111800_Hey, DT! It's Nice To See You Screw Things Up....mp4", false, ~U[2025-11-18 14:01:39Z]] 20:10:19.454 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.456 [debug] QUERY OK source="media_items" db=2.0ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-15 14:00:02Z], 35] 20:10:19.457 [debug] QUERY OK source="media_items" db=0.7ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "09396e03-9170-4382-9955-428fb435c141", "https://www.youtube.com/watch?v=0jqPu31ZvOc", false, "0jqPu31ZvOc", 35, [], 469, false, 15, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, false, 98, ~U[2025-11-15 14:00:02Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection. LocalSend is available on Windows, Mac, Linux, Android and iOS.\n\nREFERENCED:\n► https://github.com/localsend/localsend\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "Send Files Over Local Network With LocalSend", "https://www.youtube.com/watch?v=0jqPu31ZvOc", "0jqPu31ZvOc", 35, 469, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111500_Send Files Over Local Network With LocalSend.mp4", false, ~U[2025-11-15 14:00:02Z]] 20:10:19.457 [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" = ?) [35] 20:10:19.460 [debug] QUERY OK source="media_items" db=2.2ms 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[2025-11-12 14:00:28Z], 35] 20:10:19.461 [debug] QUERY OK source="media_items" db=0.7ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "3e9d18ae-d617-4169-98bb-7734f4530b52", "https://www.youtube.com/watch?v=H7W4k9YXKGM", false, "H7W4k9YXKGM", 35, [], 251, false, 16, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, false, 98, ~U[2025-11-12 14:00:28Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Windows users sometimes claim that they can't switch to Linux because they would miss their Windows apps. I agree! In fact, as a longtime Linux user, I could NEVER go back to Windows now that I've grown accustomed to all these fantastic Linux apps!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "These Linux Apps Keep Me From Going Back To Windows", "https://www.youtube.com/watch?v=H7W4k9YXKGM", "H7W4k9YXKGM", 35, 251, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e111200_These Linux Apps Keep Me From Going Back To Windows.mp4", false, ~U[2025-11-12 14:00:28Z]] 20:10:19.461 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [35] 20:10:19.464 [debug] QUERY OK source="media_items" db=2.3ms 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-11-09 14:01:18Z], 35] 20:10:19.465 [debug] QUERY OK source="media_items" db=0.7ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "dcc564c1-6d39-493d-864a-6b15bffbdd62", "https://www.youtube.com/watch?v=p9dmUn4IeT4", false, "p9dmUn4IeT4", 35, [], 918, false, 17, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, false, 98, ~U[2025-11-09 14:01:18Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "In this video, I'm going to run through a quick installation and first look at Fedora 43 with the GNOME desktop. \n\nREFERENCED:\n► https://fedoraproject.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!", "A Quick First Look At Fedora 43", "https://www.youtube.com/watch?v=p9dmUn4IeT4", "p9dmUn4IeT4", 35, 918, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110900_A Quick First Look At Fedora 43.mp4", false, ~U[2025-11-09 14:01:18Z]] 20:10:19.465 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.467 [debug] QUERY OK source="media_items" db=2.0ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 14:01:02Z], 35] 20:10:19.468 [debug] QUERY OK source="media_items" db=0.7ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "3f34ef02-379a-4beb-a22d-bf85c1d5f3f2", "https://www.youtube.com/watch?v=Tu_pKh51kcM", false, "Tu_pKh51kcM", 35, [], 582, false, 18, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, false, 98, ~U[2025-11-06 14:01:02Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Does Linux have a \"fragmentation\" problem? Are their too many Linux distros? Too many package managers? Too much choice in free and open source software?\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\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 Fragmentation Problem Within Linux - Is It Real Or Fake News?", "https://www.youtube.com/watch?v=Tu_pKh51kcM", "Tu_pKh51kcM", 35, 582, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110600_The Fragmentation Problem Within Linux - Is It Real Or Fake News?.mp4", false, ~U[2025-11-06 14:01:02Z]] 20:10:19.469 [debug] QUERY OK source="sources" db=0.3ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [35] 20:10:19.471 [debug] QUERY OK source="media_items" db=2.0ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-03 14:00:18Z], 35] 20:10:19.475 [debug] QUERY OK source="media_items" db=3.6ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "43b59fcb-2ec7-4348-a08e-8fdb66ce4f83", "https://www.youtube.com/watch?v=7OSUgn0f6VU", false, "7OSUgn0f6VU", 35, [], 781, false, 19, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, false, 98, ~U[2025-11-03 14:00:18Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "TRMNL is an open source e-ink display that helps you stay focused. It has a variety of plugins to display a variety of information, including: calendar, weather, todo lists, github actions, stock quotes, youtube analytics, motivation quotes, bible verses, and much more.\n\nREFERENCED:\n► https://usetrmnl.com/\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "TRMNL Is An Open Source E Ink Display", "https://www.youtube.com/watch?v=7OSUgn0f6VU", "7OSUgn0f6VU", 35, 781, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e110300_TRMNL Is An Open Source E Ink Display.mp4", false, ~U[2025-11-03 14:00:18Z]] 20:10:19.475 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [35] 20:10:19.478 [debug] QUERY OK source="media_items" db=2.0ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 13:00:01Z], 35] 20:10:19.478 [debug] QUERY OK source="media_items" db=0.6ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Rarely is there only two sides to an argument. Usually there's at least a third choice that you haven't even considered!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "It's Rarely Black Or White...It's Usually Gray!", "d2116004-18ef-443d-8eaf-3e8824e285a0", "https://www.youtube.com/watch?v=-Y6h-VK4hSo", false, "-Y6h-VK4hSo", 35, [], 455, false, 20, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e103100_It's Rarely Black Or White...It's Usually Gray!.mp4", false, false, 98, ~U[2025-10-31 13:00:01Z], ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], "Rarely is there only two sides to an argument. Usually there's at least a third choice that you haven't even considered!\n\nWANT TO SUPPORT THE CHANNEL? \n💰 Patreon: https://www.patreon.com/distrotube \n💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW\n🛍️ Amazon: https://amzn.to/2RotFFi\n👕 Teespring: https://teespring.com/stores/distrotube\n\nDT ON THE WEB:\n🕸️ Website: http://distro.tube\n📁 GitLab: https://gitlab.com/dwt1 \n🗨️ Mastodon: https://fosstodon.org/@distrotube\n👫 Reddit: https://www.reddit.com/r/DistroTube/\n📽️ Odysee: https://odysee.com/@DistroTube:2\n\nFREE AND OPEN SOURCE SOFTWARE THAT I LIKE:\n🌐 Brave Browser - https://brave.com/\n📽️ Open Broadcaster Software: https://obsproject.com/\n🎬 Kdenlive: https://kdenlive.org\n🎨 GIMP: https://www.gimp.org/\n💻 VirtualBox: https://www.virtualbox.org/\n🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs\n\nYour support is very much appreciated. Thanks, guys!", "It's Rarely Black Or White...It's Usually Gray!", "https://www.youtube.com/watch?v=-Y6h-VK4hSo", "-Y6h-VK4hSo", 35, 455, false, "/downloads/chris/tubes/DistroTube_[UCVls1GmFKf6WlTraIb_IaJg]/Season 2025/s2025e103100_It's Rarely Black Or White...It's Usually Gray!.mp4", false, ~U[2025-10-31 13:00:01Z]] 20:10:19.479 [debug] QUERY OK source="sources" db=0.2ms idle=7.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z], 35] 20:10:19.481 [debug] QUERY OK source="media_items" db=2.2ms 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 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 20:10:19.484 [debug] QUERY OK source="media_items" db=2.2ms idle=6.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] 20:10:19.484 [debug] QUERY OK source="media_items" db=0.4ms idle=6.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [35] 20:10:19.501 [debug] QUERY OK source="tasks" db=15.9ms idle=3.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88159, 35, ~U[2026-01-01 02:10:19Z], ~U[2026-01-01 02:10:19Z]] 20:10:19.505 [info] {"args":{"id":35},"id":88138,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":48553492,"event":"job:stop","queue_time":325246,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:10:41.048 [info] {"args":{"id":46},"id":88140,"meta":{},"system_time":1767233441048273633,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:10:41.048 [debug] QUERY OK source="sources" db=0.2ms idle=1701.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:41.048 [debug] QUERY OK source="settings" db=0.1ms idle=1701.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:10:41.049 [debug] QUERY OK source="media_items" db=0.4ms idle=1008.9ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [46] 20:10:41.049 [debug] QUERY OK source="media_items" db=0.1ms idle=8.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 20:10:41.049 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:41.050 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:10:41.050 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:10:41.051 [debug] QUERY OK source="media_items" db=0.5ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [46] 20:10:41.052 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:10:41.052 [debug] Current batch of media processed. Will check again in 1000ms 20:10:41.052 [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 [] 20:10:41.053 [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 [] 20:10:41.053 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:10:41.053 [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/05/69/05693f9dcdedd5586c789dac3023c026cfa133ce5837b762b18b8abe65b3a192.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/cb/b9/cbb9ef8389f8861f18bd8875b1aae4c9eb5e9fad1209b37c2147b7cdb6f43d1c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:10:42.053 [debug] Current batch of media processed. Will check again in 1000ms 20:10:43.054 [debug] Current batch of media processed. Will check again in 1000ms 20:10:44.055 [debug] Current batch of media processed. Will check again in 1000ms 20:10:45.056 [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" => 1, "timestamp" => 1766875119, "title" => "This side project was written in 3 hours | 2026 RIP Dev", "upload_date" => "20251227"} 20:10:45.057 [debug] QUERY OK source="sources" db=0.2ms idle=710.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:45.057 [debug] QUERY OK source="sources" db=0.1ms idle=710.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:45.057 [debug] QUERY OK source="media_items" db=0.3ms idle=711.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-27 22:38:39Z], 46] 20:10:45.058 [debug] QUERY OK source="media_items" db=0.5ms idle=711.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "925ef405-e23f-4554-bbaa-bb752657b18b", "https://www.youtube.com/watch?v=FY9rrTmYMww", false, "FY9rrTmYMww", 46, [], 402, false, 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, false, 98, ~U[2025-12-27 22:38:39Z], ~U[2026-01-01 02:10:45Z], ~U[2026-01-01 02:10:45Z], "if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "https://www.youtube.com/watch?v=FY9rrTmYMww", "FY9rrTmYMww", 46, 402, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, ~U[2025-12-27 22:38:39Z]] 20:10:45.058 [debug] QUERY OK source="sources" db=0.1ms idle=12.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:45.059 [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] 20:10:45.059 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1877810] 20:10:45.059 [debug] Current batch of media processed. Will check again in 1000ms 20:10:46.060 [debug] Current batch of media processed. Will check again in 1000ms 20:10:47.061 [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" => 2, "timestamp" => 1766739950, "title" => "This Linux Command deserves an Award", "upload_date" => "20251226"} 20:10:47.062 [debug] QUERY OK source="sources" db=0.1ms idle=714.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:47.062 [debug] QUERY OK source="sources" db=0.1ms idle=715.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:47.063 [debug] QUERY OK source="media_items" db=0.5ms idle=715.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-26 09:05:50Z], 46] 20:10:47.063 [debug] QUERY OK source="media_items" db=0.5ms idle=716.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "f0ca5d90-7b72-4825-abe4-833a2710de63", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", false, "BLez_d_Z8Dw", 46, [], 693, false, 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, false, 98, ~U[2025-12-26 09:05:50Z], ~U[2026-01-01 02:10:47Z], ~U[2026-01-01 02:10:47Z], "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "BLez_d_Z8Dw", 46, 693, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, ~U[2025-12-26 09:05:50Z]] 20:10:47.064 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:47.064 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:47.064 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1865120] 20:10:47.064 [debug] Current batch of media processed. Will check again in 1000ms 20:10:47.650 [info] {"source":"oban","duration":3438,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:10:48.065 [debug] Current batch of media processed. Will check again in 1000ms 20:10:49.066 [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" => 3, "timestamp" => 1766205856, "title" => "Healing depressed Linux Users", "upload_date" => "20251220"} 20:10:49.067 [debug] QUERY OK source="sources" db=0.2ms idle=1017.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:49.067 [debug] QUERY OK source="sources" db=0.2ms idle=720.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:49.068 [debug] QUERY OK source="media_items" db=0.4ms idle=720.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-20 04:44:16Z], 46] 20:10:49.068 [debug] QUERY OK source="media_items" db=0.4ms idle=721.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "Healing depressed Linux Users", "ad815a8a-2d44-48cf-8717-fa256de8e7be", "https://www.youtube.com/watch?v=hfCsDPg8T0A", false, "hfCsDPg8T0A", 46, [], 827, false, 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, false, 98, ~U[2025-12-20 04:44:16Z], ~U[2026-01-01 02:10:49Z], ~U[2026-01-01 02:10:49Z], "write - suraj@bugswriter.com", "Healing depressed Linux Users", "https://www.youtube.com/watch?v=hfCsDPg8T0A", "hfCsDPg8T0A", 46, 827, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, ~U[2025-12-20 04:44:16Z]] 20:10:49.069 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:49.069 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:49.069 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1815904] 20:10:49.069 [debug] Current batch of media processed. Will check again in 1000ms 20:10:50.070 [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" => 4, "timestamp" => 1766019829, "title" => "only computer science people will understand this...", "upload_date" => "20251218"} 20:10:50.071 [debug] QUERY OK source="sources" db=0.1ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 20:10:50.071 [debug] QUERY OK source="sources" db=0.0ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:50.071 [debug] QUERY OK source="media_items" db=0.3ms idle=1001.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 01:03:49Z], 46] 20:10:50.072 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "only computer science people will understand this...", "fbb04f5a-badd-4427-804e-f9e91cd5b42d", "https://www.youtube.com/watch?v=uXaV1r9IRng", false, "uXaV1r9IRng", 46, [], 896, false, 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, false, 98, ~U[2025-12-18 01:03:49Z], ~U[2026-01-01 02:10:50Z], ~U[2026-01-01 02:10:50Z], "write - suraj@bugswriter.com", "only computer science people will understand this...", "https://www.youtube.com/watch?v=uXaV1r9IRng", "uXaV1r9IRng", 46, 896, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, ~U[2025-12-18 01:03:49Z]] 20:10:50.072 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:50.073 [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] 20:10:50.073 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1799377] 20:10:50.073 [debug] Current batch of media processed. Will check again in 1000ms 20:10:51.073 [debug] Current batch of media processed. Will check again in 1000ms 20:10:52.074 [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" => 5, "timestamp" => 1765920232, "title" => "All Linux Hackers ... find this life hack", "upload_date" => "20251216"} 20:10:52.074 [debug] QUERY OK source="sources" db=0.1ms idle=728.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:52.075 [debug] QUERY OK source="sources" db=0.1ms idle=728.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:52.076 [debug] QUERY OK source="media_items" db=0.6ms idle=728.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-16 21:23:52Z], 46] 20:10:52.076 [debug] QUERY OK source="media_items" db=0.3ms idle=729.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "10407bed-d77c-4cf3-a293-204aab0f8f99", "https://www.youtube.com/watch?v=8x722oYNR8U", false, "8x722oYNR8U", 46, [], 881, false, 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, false, 98, ~U[2025-12-16 21:23:52Z], ~U[2026-01-01 02:10:52Z], ~U[2026-01-01 02:10:52Z], "true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "https://www.youtube.com/watch?v=8x722oYNR8U", "8x722oYNR8U", 46, 881, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, ~U[2025-12-16 21:23:52Z]] 20:10:52.076 [debug] QUERY OK source="sources" db=0.1ms idle=23.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:10:52.077 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:52.077 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1789693] 20:10:52.077 [debug] Current batch of media processed. Will check again in 1000ms 20:10:53.078 [debug] Current batch of media processed. Will check again in 1000ms 20:10:54.079 [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" => 6, "timestamp" => 1765838367, "title" => "arch linux users reality check - I hate \"technology\"", "upload_date" => "20251215"} 20:10:54.079 [debug] QUERY OK source="sources" db=0.1ms idle=733.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:54.080 [debug] QUERY OK source="sources" db=0.1ms idle=733.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:54.080 [debug] QUERY OK source="media_items" db=0.3ms idle=733.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-15 22:39:27Z], 46] 20:10:54.081 [debug] QUERY OK source="media_items" db=0.5ms idle=734.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "f55ac98e-08ad-4b82-9e00-e20500deba78", "https://www.youtube.com/watch?v=K7owg2iyxtI", false, "K7owg2iyxtI", 46, [], 975, false, 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, false, 98, ~U[2025-12-15 22:39:27Z], ~U[2026-01-01 02:10:54Z], ~U[2026-01-01 02:10:54Z], "write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "https://www.youtube.com/watch?v=K7owg2iyxtI", "K7owg2iyxtI", 46, 975, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, ~U[2025-12-15 22:39:27Z]] 20:10:54.081 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:54.081 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:54.082 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1782344] 20:10:54.082 [debug] Current batch of media processed. Will check again in 1000ms 20:10:55.082 [debug] Current batch of media processed. Will check again in 1000ms 20:10:56.084 [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" => 7, "timestamp" => 1765277505, "title" => "piper tts is the chosen one (for my notifications)", "upload_date" => "20251209"} 20:10:56.084 [debug] QUERY OK source="sources" db=0.1ms idle=737.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:56.084 [debug] QUERY OK source="sources" db=0.1ms idle=738.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:56.085 [debug] QUERY OK source="media_items" db=0.3ms idle=738.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-09 10:51:45Z], 46] 20:10:56.086 [debug] QUERY OK source="media_items" db=0.4ms idle=739.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "1ecf4674-9ea7-4565-9277-077f3aad8772", "https://www.youtube.com/watch?v=osixWhig3AI", false, "osixWhig3AI", 46, [], 619, false, 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, false, 98, ~U[2025-12-09 10:51:45Z], ~U[2026-01-01 02:10:56Z], ~U[2026-01-01 02:10:56Z], "write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "https://www.youtube.com/watch?v=osixWhig3AI", "osixWhig3AI", 46, 619, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, ~U[2025-12-09 10:51:45Z]] 20:10:56.086 [debug] QUERY OK source="sources" db=0.1ms idle=29.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:56.086 [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] 20:10:56.086 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1730517] 20:10:56.086 [debug] Current batch of media processed. Will check again in 1000ms 20:10:57.087 [debug] Current batch of media processed. Will check again in 1000ms 20:10:58.088 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "all my team members use arch linux ironically (5 people)", "duration" => 573, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", "id" => "i2p6Jpw4IvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i2p6Jpw4IvI", "playlist_index" => 8, "timestamp" => 1765161761, "title" => "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "upload_date" => "20251208"} 20:10:58.088 [debug] QUERY OK source="sources" db=0.1ms idle=741.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:10:58.089 [debug] QUERY OK source="sources" db=0.1ms idle=742.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:10:58.089 [debug] QUERY OK source="media_items" db=0.3ms idle=742.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-08 02:42:41Z], 46] 20:10:58.090 [debug] QUERY OK source="media_items" db=0.4ms idle=742.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "d5419100-7a7f-41ed-b079-3642e876c6b4", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", false, "i2p6Jpw4IvI", 46, [], 573, false, 8, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, false, 98, ~U[2025-12-08 02:42:41Z], ~U[2026-01-01 02:10:58Z], ~U[2026-01-01 02:10:58Z], "all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", "i2p6Jpw4IvI", 46, 573, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, ~U[2025-12-08 02:42:41Z]] 20:10:58.090 [debug] QUERY OK source="sources" db=0.1ms idle=31.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:10:58.090 [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] 20:10:58.091 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1720299] 20:10:58.091 [debug] Current batch of media processed. Will check again in 1000ms 20:10:59.092 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "sharing some thoughts.", "duration" => 971, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", "id" => "33UYBAH0EUc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=33UYBAH0EUc", "playlist_index" => 9, "timestamp" => 1764595973, "title" => "python systemd processes making money !", "upload_date" => "20251201"} 20:10:59.092 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 20:10:59.093 [debug] QUERY OK source="sources" db=0.0ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:10:59.093 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-01 13:32:53Z], 46] 20:10:59.094 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["sharing some thoughts.", "python systemd processes making money !", "ae31bdb0-de74-4b1f-95f6-682e5364216e", "https://www.youtube.com/watch?v=33UYBAH0EUc", false, "33UYBAH0EUc", 46, [], 971, false, 9, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, false, 98, ~U[2025-12-01 13:32:53Z], ~U[2026-01-01 02:10:59Z], ~U[2026-01-01 02:10:59Z], "sharing some thoughts.", "python systemd processes making money !", "https://www.youtube.com/watch?v=33UYBAH0EUc", "33UYBAH0EUc", 46, 971, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, ~U[2025-12-01 13:32:53Z]] 20:10:59.094 [debug] QUERY OK source="sources" db=0.1ms idle=33.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:10:59.094 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:10:59.094 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1668719] 20:10:59.095 [debug] Current batch of media processed. Will check again in 1000ms 20:11:00.095 [debug] Current batch of media processed. Will check again in 1000ms 20:11:00.893 [info] {"source":"oban","duration":359,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:11:01.096 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "duration" => 813, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", "id" => "0GhH8oqFbVY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0GhH8oqFbVY", "playlist_index" => 10, "timestamp" => 1763976873, "title" => "DELETE Android from your LIFE !", "upload_date" => "20251124"} 20:11:01.096 [debug] QUERY OK source="sources" db=0.1ms idle=750.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 20:11:01.097 [debug] QUERY OK source="sources" db=0.1ms idle=750.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:11:01.097 [debug] QUERY OK source="media_items" db=0.3ms idle=750.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-24 09:34:33Z], 46] 20:11:01.098 [debug] QUERY OK source="media_items" db=0.4ms idle=204.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "bd5aeecc-f01b-4c0a-822b-a2606ece6162", "https://www.youtube.com/watch?v=0GhH8oqFbVY", false, "0GhH8oqFbVY", 46, [], 813, false, 10, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, false, 98, ~U[2025-11-24 09:34:33Z], ~U[2026-01-01 02:11:01Z], ~U[2026-01-01 02:11:01Z], "I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "https://www.youtube.com/watch?v=0GhH8oqFbVY", "0GhH8oqFbVY", 46, 813, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, ~U[2025-11-24 09:34:33Z]] 20:11:01.098 [debug] QUERY OK source="sources" db=0.1ms idle=35.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:11:01.098 [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] 20:11:01.099 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1612311] 20:11:01.099 [debug] Current batch of media processed. Will check again in 1000ms 20:11:02.099 [debug] Current batch of media processed. Will check again in 1000ms 20:11:03.100 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "its a very poorly made video, me trying to showcase - the solutions I made in my project", "duration" => 1023, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", "id" => "IwfwPrR3wQA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IwfwPrR3wQA", "playlist_index" => 11, "timestamp" => 1763372790, "title" => "bigger the tech problem, simpler the solution", "upload_date" => "20251117"} 20:11:03.101 [debug] QUERY OK source="sources" db=0.2ms idle=754.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:11:03.101 [debug] QUERY OK source="sources" db=0.1ms idle=754.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:11:03.102 [debug] QUERY OK source="media_items" db=0.3ms idle=754.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-17 09:46:30Z], 46] 20:11:03.102 [debug] QUERY OK source="media_items" db=0.4ms idle=755.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "fbe1c2d3-23c1-4202-a970-1a241857e2f4", "https://www.youtube.com/watch?v=IwfwPrR3wQA", false, "IwfwPrR3wQA", 46, [], 1023, false, 11, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, false, 98, ~U[2025-11-17 09:46:30Z], ~U[2026-01-01 02:11:03Z], ~U[2026-01-01 02:11:03Z], "its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "https://www.youtube.com/watch?v=IwfwPrR3wQA", "IwfwPrR3wQA", 46, 1023, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, ~U[2025-11-17 09:46:30Z]] 20:11:03.103 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:03.103 [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] 20:11:03.103 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1558405] 20:11:03.103 [debug] Current batch of media processed. Will check again in 1000ms 20:11:04.104 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 661, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", "id" => "syNsuWNFZRo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=syNsuWNFZRo", "playlist_index" => 12, "timestamp" => 1763017746, "title" => "zed editor killed vscode - used it 2 months for my project", "upload_date" => "20251113"} 20:11:04.104 [debug] QUERY OK source="sources" db=0.1ms idle=1001.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 20:11:04.105 [debug] QUERY OK source="sources" db=0.0ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:04.105 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 07:09:06Z], 46] 20:11:04.106 [debug] QUERY OK source="media_items" db=0.5ms idle=1002.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "36f60069-4835-4a76-8b60-98b80aa1e7fa", "https://www.youtube.com/watch?v=syNsuWNFZRo", false, "syNsuWNFZRo", 46, [], 661, false, 12, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, false, 98, ~U[2025-11-13 07:09:06Z], ~U[2026-01-01 02:11:04Z], ~U[2026-01-01 02:11:04Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "https://www.youtube.com/watch?v=syNsuWNFZRo", "syNsuWNFZRo", 46, 661, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, ~U[2025-11-13 07:09:06Z]] 20:11:04.106 [debug] QUERY OK source="sources" db=0.1ms idle=40.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:11:04.107 [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] 20:11:04.107 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1522420] 20:11:04.107 [debug] Current batch of media processed. Will check again in 1000ms 20:11:05.108 [debug] Current batch of media processed. Will check again in 1000ms 20:11:06.109 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "duration" => 721, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", "id" => "w770iDpO_H0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=w770iDpO_H0", "playlist_index" => 13, "timestamp" => 1762813067, "title" => "guys... what u think of my project ?", "upload_date" => "20251110"} 20:11:06.109 [debug] QUERY OK source="sources" db=0.1ms idle=763.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:11:06.110 [debug] QUERY OK source="sources" db=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" = ?) [46] 20:11:06.110 [debug] QUERY OK source="media_items" db=0.3ms idle=763.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-10 22:17:47Z], 46] 20:11:06.111 [debug] QUERY OK source="media_items" db=0.4ms idle=764.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "8be15b30-8254-4360-aef7-8564db73d8f4", "https://www.youtube.com/watch?v=w770iDpO_H0", false, "w770iDpO_H0", 46, [], 721, false, 13, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, false, 98, ~U[2025-11-10 22:17:47Z], ~U[2026-01-01 02:11:06Z], ~U[2026-01-01 02:11:06Z], "I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "https://www.youtube.com/watch?v=w770iDpO_H0", "w770iDpO_H0", 46, 721, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, ~U[2025-11-10 22:17:47Z]] 20:11:06.111 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [46] 20:11:06.112 [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] 20:11:06.112 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1504288] 20:11:06.112 [debug] Current batch of media processed. Will check again in 1000ms 20:11:07.112 [debug] Current batch of media processed. Will check again in 1000ms 20:11:08.113 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 1142, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", "id" => "rvT5sB5RYzs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rvT5sB5RYzs", "playlist_index" => 14, "timestamp" => 1762623460, "title" => "diabolic LINUX user teaching 90% AI hype", "upload_date" => "20251108"} 20:11:08.113 [debug] QUERY OK source="sources" db=0.1ms idle=767.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:11:08.114 [debug] QUERY OK source="sources" db=0.1ms idle=767.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:11:08.114 [debug] QUERY OK source="media_items" db=0.4ms idle=767.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-08 17:37:40Z], 46] 20:11:08.115 [debug] QUERY OK source="media_items" db=0.4ms idle=768.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "3879afb3-187a-4be8-9ea7-bf0f4c457a86", "https://www.youtube.com/watch?v=rvT5sB5RYzs", false, "rvT5sB5RYzs", 46, [], 1142, false, 14, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, false, 98, ~U[2025-11-08 17:37:40Z], ~U[2026-01-01 02:11:08Z], ~U[2026-01-01 02:11:08Z], "read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "https://www.youtube.com/watch?v=rvT5sB5RYzs", "rvT5sB5RYzs", 46, 1142, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, ~U[2025-11-08 17:37:40Z]] 20:11:08.115 [debug] QUERY OK source="sources" db=0.1ms idle=43.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:11:08.115 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:11:08.116 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1487143] 20:11:08.116 [debug] Current batch of media processed. Will check again in 1000ms 20:11:09.116 [debug] Current batch of media processed. Will check again in 1000ms 20:11:10.117 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 753, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", "id" => "fhFWIY51tuY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fhFWIY51tuY", "playlist_index" => 15, "timestamp" => 1761936457, "title" => "tech jobs makes u weak", "upload_date" => "20251031"} 20:11:10.118 [debug] QUERY OK source="sources" db=0.2ms idle=771.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:11:10.118 [debug] QUERY OK source="sources" db=0.1ms idle=771.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:11:10.119 [debug] QUERY OK source="media_items" db=0.3ms idle=772.1ms 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 18:47:37Z], 46] 20:11:10.120 [debug] QUERY OK source="media_items" db=0.8ms idle=772.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "17735b21-baae-4294-9816-b0ebeaa83b55", "https://www.youtube.com/watch?v=fhFWIY51tuY", false, "fhFWIY51tuY", 46, [], 753, false, 15, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, false, 98, ~U[2025-10-31 18:47:37Z], ~U[2026-01-01 02:11:10Z], ~U[2026-01-01 02:11:10Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "https://www.youtube.com/watch?v=fhFWIY51tuY", "fhFWIY51tuY", 46, 753, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, ~U[2025-10-31 18:47:37Z]] 20:11:10.120 [debug] QUERY OK source="sources" db=0.1ms idle=46.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:11:10.120 [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] 20:11:10.121 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1425430] 20:11:10.121 [debug] Current batch of media processed. Will check again in 1000ms 20:11:11.121 [debug] Current batch of media processed. Will check again in 1000ms 20:11:12.123 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 531, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", "id" => "I1P-L9JoyL4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I1P-L9JoyL4", "playlist_index" => 16, "timestamp" => 1761824893, "title" => "spotify noobs vs russian aimp pros", "upload_date" => "20251030"} 20:11:12.124 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=776.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:11:12.124 [debug] QUERY OK source="sources" db=0.1ms idle=777.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:11:12.124 [debug] QUERY OK source="media_items" db=0.3ms idle=777.6ms 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 11:48:13Z], 46] 20:11:12.125 [debug] QUERY OK source="media_items" db=0.4ms idle=778.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "b3fce7ff-789b-4bf4-bc4e-7a1cc15f3311", "https://www.youtube.com/watch?v=I1P-L9JoyL4", false, "I1P-L9JoyL4", 46, [], 531, false, 16, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, false, 98, ~U[2025-10-30 11:48:13Z], ~U[2026-01-01 02:11:12Z], ~U[2026-01-01 02:11:12Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "https://www.youtube.com/watch?v=I1P-L9JoyL4", "I1P-L9JoyL4", 46, 531, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, ~U[2025-10-30 11:48:13Z]] 20:11:12.125 [debug] QUERY OK source="sources" db=0.1ms idle=49.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:12.126 [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] 20:11:12.126 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1415713] 20:11:12.126 [debug] Current batch of media processed. Will check again in 1000ms 20:11:13.127 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "duration" => 561, "filename" => "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", "id" => "UtgGbSO0sAI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UtgGbSO0sAI", "playlist_index" => 17, "timestamp" => 1761683237, "title" => "most loved binary by engineers - pocketbase", "upload_date" => "20251028"} 20:11:13.128 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [46] 20:11:13.129 [debug] QUERY OK source="sources" db=0.1ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:13.129 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-28 20:27:17Z], 46] 20:11:13.130 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "38872213-c4a1-44f1-8e52-761398364132", "https://www.youtube.com/watch?v=UtgGbSO0sAI", false, "UtgGbSO0sAI", 46, [], 561, false, 17, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, false, 98, ~U[2025-10-28 20:27:17Z], ~U[2026-01-01 02:11:13Z], ~U[2026-01-01 02:11:13Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "https://www.youtube.com/watch?v=UtgGbSO0sAI", "UtgGbSO0sAI", 46, 561, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, ~U[2025-10-28 20:27:17Z]] 20:11:13.130 [debug] QUERY OK source="sources" db=0.1ms idle=51.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:13.131 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:11:13.131 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1402901] 20:11:13.131 [debug] Current batch of media processed. Will check again in 1000ms 20:11:14.132 [debug] Current batch of media processed. Will check again in 1000ms 20:11:14.764 [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/05/69/05693f9dcdedd5586c789dac3023c026cfa133ce5837b762b18b8abe65b3a192.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/cb/b9/cbb9ef8389f8861f18bd8875b1aae4c9eb5e9fad1209b37c2147b7cdb6f43d1c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:11:14.765 [debug] Gracefully stopping file follower 20:11:14.765 [debug] QUERY OK source="sources" db=0.1ms idle=685.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:11:14.765 [debug] QUERY OK source="sources" db=0.1ms idle=419.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:11:14.766 [debug] QUERY OK source="media_items" db=0.3ms idle=419.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] 20:11:14.766 [debug] QUERY OK source="media_items" db=0.5ms idle=419.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "d7108b68-0639-44e9-a065-6e4bb26da518", "https://www.youtube.com/watch?v=FY9rrTmYMww", false, "FY9rrTmYMww", 46, [], 402, false, 1, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, false, 98, ~U[2025-12-27 22:38:39Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "if u can find me b2b clients - suraj@bugswriter.com", "This side project was written in 3 hours | 2026 RIP Dev", "https://www.youtube.com/watch?v=FY9rrTmYMww", "FY9rrTmYMww", 46, 402, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122700_This side project was written in 3 hours | 2026 RIP Dev.mp4", false, ~U[2025-12-27 22:38:39Z]] 20:11:14.767 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [46] 20:11:14.767 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-26 09:05:50Z], 46] 20:11:14.768 [debug] QUERY OK source="media_items" db=0.4ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "6119c24a-3e6a-4a5c-8111-d00381b7aa34", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", false, "BLez_d_Z8Dw", 46, [], 693, false, 2, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, false, 98, ~U[2025-12-26 09:05:50Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "write - suraj@bugswriter.com\nhttps://github.com/bugswriter/dontforget", "This Linux Command deserves an Award", "https://www.youtube.com/watch?v=BLez_d_Z8Dw", "BLez_d_Z8Dw", 46, 693, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122600_This Linux Command deserves an Award.mp4", false, ~U[2025-12-26 09:05:50Z]] 20:11:14.768 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.768 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-20 04:44:16Z], 46] 20:11:14.769 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "Healing depressed Linux Users", "33752404-9fef-401b-b9dd-8e0dd5ee6a89", "https://www.youtube.com/watch?v=hfCsDPg8T0A", false, "hfCsDPg8T0A", 46, [], 827, false, 3, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, false, 98, ~U[2025-12-20 04:44:16Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "write - suraj@bugswriter.com", "Healing depressed Linux Users", "https://www.youtube.com/watch?v=hfCsDPg8T0A", "hfCsDPg8T0A", 46, 827, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e122000_Healing depressed Linux Users.mp4", false, ~U[2025-12-20 04:44:16Z]] 20:11:14.769 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.769 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-18 01:03:49Z], 46] 20:11:14.770 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "only computer science people will understand this...", "98485a4b-95a0-4b55-b750-f762db5ddb47", "https://www.youtube.com/watch?v=uXaV1r9IRng", false, "uXaV1r9IRng", 46, [], 896, false, 4, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, false, 98, ~U[2025-12-18 01:03:49Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "write - suraj@bugswriter.com", "only computer science people will understand this...", "https://www.youtube.com/watch?v=uXaV1r9IRng", "uXaV1r9IRng", 46, 896, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121800_only computer science people will understand this....mp4", false, ~U[2025-12-18 01:03:49Z]] 20:11:14.770 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.771 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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] 20:11:14.771 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "aa19fa1b-3ee2-4d4f-a20c-e8985659b0c6", "https://www.youtube.com/watch?v=8x722oYNR8U", false, "8x722oYNR8U", 46, [], 881, false, 5, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, false, 98, ~U[2025-12-16 21:23:52Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "true - suraj@bugswriter.com", "All Linux Hackers ... find this life hack", "https://www.youtube.com/watch?v=8x722oYNR8U", "8x722oYNR8U", 46, 881, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121600_All Linux Hackers ... find this life hack.mp4", false, ~U[2025-12-16 21:23:52Z]] 20:11:14.771 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.772 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-15 22:39:27Z], 46] 20:11:14.772 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "ad928d1a-8e88-4756-992e-a07f61539cf2", "https://www.youtube.com/watch?v=K7owg2iyxtI", false, "K7owg2iyxtI", 46, [], 975, false, 6, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, false, 98, ~U[2025-12-15 22:39:27Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "write me - suraj@bugswriter.com", "arch linux users reality check - I hate \"technology\"", "https://www.youtube.com/watch?v=K7owg2iyxtI", "K7owg2iyxtI", 46, 975, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e121500_arch linux users reality check - I hate "technology".mp4", false, ~U[2025-12-15 22:39:27Z]] 20:11:14.773 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.773 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-09 10:51:45Z], 46] 20:11:14.773 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "14be92a8-a98e-4dcf-94bf-df2432e27d4d", "https://www.youtube.com/watch?v=osixWhig3AI", false, "osixWhig3AI", 46, [], 619, false, 7, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, false, 98, ~U[2025-12-09 10:51:45Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "write - suraj@bugswriter.com", "piper tts is the chosen one (for my notifications)", "https://www.youtube.com/watch?v=osixWhig3AI", "osixWhig3AI", 46, 619, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120900_piper tts is the chosen one (for my notifications).mp4", false, ~U[2025-12-09 10:51:45Z]] 20:11:14.774 [debug] QUERY OK source="sources" db=0.1ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.774 [debug] QUERY OK source="media_items" db=0.2ms idle=1.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 02:42:41Z], 46] 20:11:14.775 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "3a60705e-a975-4ace-a871-0ba0d5ccd0e1", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", false, "i2p6Jpw4IvI", 46, [], 573, false, 8, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, false, 98, ~U[2025-12-08 02:42:41Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "all my team members use arch linux ironically (5 people)", "Arch Linux Users Startup Product is 0 Soy, 100% usabilty", "https://www.youtube.com/watch?v=i2p6Jpw4IvI", "i2p6Jpw4IvI", 46, 573, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120800_Arch Linux Users Startup Product is 0 Soy, 100% usabilty.mp4", false, ~U[2025-12-08 02:42:41Z]] 20:11:14.775 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.775 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-01 13:32:53Z], 46] 20:11:14.776 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["sharing some thoughts.", "python systemd processes making money !", "af6f8835-7e89-4b09-9a1e-097dc8c12ea5", "https://www.youtube.com/watch?v=33UYBAH0EUc", false, "33UYBAH0EUc", 46, [], 971, false, 9, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, false, 98, ~U[2025-12-01 13:32:53Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "sharing some thoughts.", "python systemd processes making money !", "https://www.youtube.com/watch?v=33UYBAH0EUc", "33UYBAH0EUc", 46, 971, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e120100_python systemd processes making money !.mp4", false, ~U[2025-12-01 13:32:53Z]] 20:11:14.776 [debug] QUERY OK source="sources" db=0.2ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.776 [debug] QUERY OK source="media_items" db=0.3ms idle=1.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-24 09:34:33Z], 46] 20:11:14.777 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "e49d208c-2d00-4056-8f45-2c61e3092161", "https://www.youtube.com/watch?v=0GhH8oqFbVY", false, "0GhH8oqFbVY", 46, [], 813, false, 10, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, false, 98, ~U[2025-11-24 09:34:33Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "I'm gonna use my \"no job\" freedom to ditch android, no one in this world, can make me force using android, if someone can.", "DELETE Android from your LIFE !", "https://www.youtube.com/watch?v=0GhH8oqFbVY", "0GhH8oqFbVY", 46, 813, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e112400_DELETE Android from your LIFE !.mp4", false, ~U[2025-11-24 09:34:33Z]] 20:11:14.777 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.777 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-17 09:46:30Z], 46] 20:11:14.778 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "02d59165-750a-4e30-90a2-56790cf89d01", "https://www.youtube.com/watch?v=IwfwPrR3wQA", false, "IwfwPrR3wQA", 46, [], 1023, false, 11, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, false, 98, ~U[2025-11-17 09:46:30Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "its a very poorly made video, me trying to showcase - the solutions I made in my project", "bigger the tech problem, simpler the solution", "https://www.youtube.com/watch?v=IwfwPrR3wQA", "IwfwPrR3wQA", 46, 1023, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111700_bigger the tech problem, simpler the solution.mp4", false, ~U[2025-11-17 09:46:30Z]] 20:11:14.778 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.779 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-13 07:09:06Z], 46] 20:11:14.779 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "c4580a92-0ce9-4348-8f01-c74604b42b50", "https://www.youtube.com/watch?v=syNsuWNFZRo", false, "syNsuWNFZRo", 46, [], 661, false, 12, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, false, 98, ~U[2025-11-13 07:09:06Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "zed editor killed vscode - used it 2 months for my project", "https://www.youtube.com/watch?v=syNsuWNFZRo", "syNsuWNFZRo", 46, 661, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111300_zed editor killed vscode - used it 2 months for my project.mp4", false, ~U[2025-11-13 07:09:06Z]] 20:11:14.779 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.780 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-10 22:17:47Z], 46] 20:11:14.780 [debug] QUERY OK source="media_items" db=0.5ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "58442ef9-f002-48af-8898-33235fdbae52", "https://www.youtube.com/watch?v=w770iDpO_H0", false, "w770iDpO_H0", 46, [], 721, false, 13, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, false, 98, ~U[2025-11-10 22:17:47Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "I made site down, as project is still under testing phase.\nemail me for helping me. I earn no money and need to make this project live.\nAny investment along with guidance will work for me. Feel free to email.\n\n - suraj@bugswriter.com", "guys... what u think of my project ?", "https://www.youtube.com/watch?v=w770iDpO_H0", "w770iDpO_H0", 46, 721, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e111000_guys... what u think of my project ?.mp4", false, ~U[2025-11-10 22:17:47Z]] 20:11:14.781 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.781 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-08 17:37:40Z], 46] 20:11:14.782 [debug] QUERY OK source="media_items" db=0.6ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "5e92c389-ebc6-4f38-9144-fa891beefad7", "https://www.youtube.com/watch?v=rvT5sB5RYzs", false, "rvT5sB5RYzs", 46, [], 1142, false, 14, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, false, 98, ~U[2025-11-08 17:37:40Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "read - https: // bugswriter.com\nwrite - suraj@bugswriter.com", "diabolic LINUX user teaching 90% AI hype", "https://www.youtube.com/watch?v=rvT5sB5RYzs", "rvT5sB5RYzs", 46, 1142, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e110800_diabolic LINUX user teaching 90% AI hype.mp4", false, ~U[2025-11-08 17:37:40Z]] 20:11:14.782 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.782 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-31 18:47:37Z], 46] 20:11:14.783 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "996786a2-20cb-4d24-9ebc-fdb24010b487", "https://www.youtube.com/watch?v=fhFWIY51tuY", false, "fhFWIY51tuY", 46, [], 753, false, 15, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, false, 98, ~U[2025-10-31 18:47:37Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "read - https :// bugswriter.com\nwrite - suraj@bugswriter.com", "tech jobs makes u weak", "https://www.youtube.com/watch?v=fhFWIY51tuY", "fhFWIY51tuY", 46, 753, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103100_tech jobs makes u weak.mp4", false, ~U[2025-10-31 18:47:37Z]] 20:11:14.783 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.784 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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 11:48:13Z], 46] 20:11:14.784 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "6b4232b5-0378-48db-a5b5-3d01a47f31a7", "https://www.youtube.com/watch?v=I1P-L9JoyL4", false, "I1P-L9JoyL4", 46, [], 531, false, 16, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, false, 98, ~U[2025-10-30 11:48:13Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "spotify noobs vs russian aimp pros", "https://www.youtube.com/watch?v=I1P-L9JoyL4", "I1P-L9JoyL4", 46, 531, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e103000_spotify noobs vs russian aimp pros.mp4", false, ~U[2025-10-30 11:48:13Z]] 20:11:14.784 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.785 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-28 20:27:17Z], 46] 20:11:14.785 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "6f87f604-11ed-4244-a5fc-6c2631a821d3", "https://www.youtube.com/watch?v=UtgGbSO0sAI", false, "UtgGbSO0sAI", 46, [], 561, false, 17, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, false, 98, ~U[2025-10-28 20:27:17Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "read - https://bugswriter.com\nwrite - suraj@bugswriter.com", "most loved binary by engineers - pocketbase", "https://www.youtube.com/watch?v=UtgGbSO0sAI", "UtgGbSO0sAI", 46, 561, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e102800_most loved binary by engineers - pocketbase.mp4", false, ~U[2025-10-28 20:27:17Z]] 20:11:14.785 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:11:14.786 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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-05 18:11:41Z], 46] 20:11:14.786 [debug] QUERY OK source="media_items" db=0.4ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["no more APIs -\nmcp servers are the future", "Future AI application - 1st draft", "1b2dd3ca-24b0-4c6d-8a18-2cb87ee11637", "https://www.youtube.com/watch?v=hfi0mi14VfE", false, "hfi0mi14VfE", 46, [], 514, false, 18, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e100500_Future AI application - 1st draft.mp4", false, false, 98, ~U[2025-10-05 18:11:41Z], ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], "no more APIs -\nmcp servers are the future", "Future AI application - 1st draft", "https://www.youtube.com/watch?v=hfi0mi14VfE", "hfi0mi14VfE", 46, 514, false, "/downloads/chris/tubes/BugsWriter_[UCngn7SVujlvskHRvRKc1cTw]/Season 2025/s2025e100500_Future AI application - 1st draft.mp4", false, ~U[2025-10-05 18:11:41Z]] 20:11:14.787 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z], 46] 20:11:14.787 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [46] 20:11:14.787 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [46] 20:11:14.788 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 20:11:14.789 [debug] QUERY OK source="tasks" db=0.2ms idle=1.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88160, 46, ~U[2026-01-01 02:11:14Z], ~U[2026-01-01 02:11:14Z]] 20:11:14.789 [info] {"args":{"id":46},"id":88140,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":33741090,"event":"job:stop","queue_time":854893,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:11:17.655 [info] {"source":"oban","duration":3800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:11:47.660 [info] {"source":"oban","duration":3975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:12:00.894 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:12:17.664 [info] {"source":"oban","duration":3318,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:12:47.667 [info] {"source":"oban","duration":2320,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:13:00.896 [info] {"source":"oban","duration":345,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:13:17.672 [info] {"source":"oban","duration":3931,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:13:47.677 [info] {"source":"oban","duration":3687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:14:00.897 [info] {"source":"oban","duration":275,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:14:17.681 [info] {"source":"oban","duration":3589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:14:47.685 [info] {"source":"oban","duration":3727,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:15:00.898 [info] {"source":"oban","duration":138,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:15:17.688 [info] {"source":"oban","duration":3020,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:15:47.692 [info] {"source":"oban","duration":3399,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:15:48.514 [info] {"args":{"id":1012064},"id":88073,"meta":{},"system_time":1767233748514284859,"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"]} 20:15:48.514 [debug] QUERY OK source="media_items" db=0.2ms idle=1167.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" = ?) [1012064] 20:15:48.514 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:15:48.515 [debug] QUERY OK source="sources" db=0.4ms idle=1009.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:15:48.515 [debug] QUERY OK source="media_profiles" db=0.3ms idle=822.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:15:48.516 [debug] QUERY OK source="media_items" db=0.2ms idle=8.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012064] 20:15:48.517 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012064] 20:15:48.517 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:15:48.517 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:15:48.517 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:15:48.518 [debug] Running yt-dlp command for action: get_downloadable_status 20:15:48.518 [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 [] 20:15:48.518 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:15:48.518 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:15:48.518 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=383RQLO9I24 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/23/36/2336a66cb32380433291cf0fcdd0c94529952ea7054a241b5e776e74e18d4781.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:15:50.847 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=383RQLO9I24 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/23/36/2336a66cb32380433291cf0fcdd0c94529952ea7054a241b5e776e74e18d4781.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] 383RQLO9I24: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:15:50.847 [error] yt-dlp download error for media item #1012064: "ERROR: [youtube] 383RQLO9I24: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:15:50.848 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012064},"id":88073,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2333648,"event":"job:exception","queue_time":344051,"attempt":14,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:16:00.899 [info] {"source":"oban","duration":221,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:16:17.697 [info] {"source":"oban","duration":3726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:16:32.589 [info] {"args":{"id":30},"id":88148,"meta":{},"system_time":1767233792588841518,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:16:32.589 [debug] QUERY OK source="sources" db=0.3ms idle=242.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:32.589 [debug] QUERY OK source="settings" db=0.1ms idle=243.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:16:32.593 [debug] QUERY OK source="media_items" db=3.7ms idle=243.4ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [30] 20:16:32.594 [debug] QUERY OK source="media_items" db=0.4ms idle=12.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 20:16:32.594 [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] 20:16:32.594 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:16:32.594 [debug] QUERY OK source="settings" db=0.0ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:16:32.598 [debug] QUERY OK source="media_items" db=2.2ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [30] 20:16:32.599 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:16:32.599 [debug] Current batch of media processed. Will check again in 1000ms 20:16:32.599 [debug] QUERY OK source="settings" db=0.0ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:16:32.600 [debug] QUERY OK source="settings" db=0.0ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:16:32.600 [debug] QUERY OK source="settings" db=0.0ms idle=5.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:16:32.600 [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/20/d1/20d10c68408c36b4ec718a34926f0ad7790042287c1e92b350ff3fa49dca2190.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/e6/dd/e6ddf1d2fdd552e057e08a3d143e835ed086c7ead69065702865cf9ff8e30c54.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:16:33.600 [debug] Current batch of media processed. Will check again in 1000ms 20:16:34.602 [debug] Current batch of media processed. Will check again in 1000ms 20:16:35.602 [debug] Current batch of media processed. Will check again in 1000ms 20:16:36.603 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1263, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", "id" => "NKPMDddHbSQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NKPMDddHbSQ", "playlist_index" => 1, "timestamp" => 1767198617, "title" => "Phoenix: A New Linux X11 Server For 2026!?!", "upload_date" => "20251231"} 20:16:36.604 [debug] QUERY OK source="sources" db=0.2ms idle=257.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:36.604 [debug] QUERY OK source="sources" db=0.1ms idle=258.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:36.609 [debug] QUERY OK source="media_items" db=3.8ms idle=258.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-31 16:30:17Z], 30] 20:16:36.610 [debug] QUERY OK source="media_items" db=1.0ms idle=262.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "a92b1208-6f4f-41cf-9a8d-164a31717e1f", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 02:16:36Z], ~U[2026-01-01 02:16:36Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 20:16:36.611 [debug] QUERY OK source="sources" db=0.6ms idle=24.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:36.611 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:36.611 [debug] QUERY OK source="media_items" db=0.2ms 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 [1907515] 20:16:36.611 [debug] Current batch of media processed. Will check again in 1000ms 20:16:37.612 [debug] Current batch of media processed. Will check again in 1000ms 20:16:38.613 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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" => 1035, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", "id" => "hOUwH5A2oQs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hOUwH5A2oQs", "playlist_index" => 2, "timestamp" => 1767112220, "title" => "The MongoBleed Vulnerability Is Absolutely Insane", "upload_date" => "20251230"} 20:16:38.614 [debug] QUERY OK source="sources" db=0.1ms idle=267.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:38.614 [debug] QUERY OK source="sources" db=0.1ms idle=267.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:38.618 [debug] QUERY OK source="media_items" db=4.1ms idle=268.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-30 16:30:20Z], 30] 20:16:38.620 [debug] QUERY OK source="media_items" db=1.1ms idle=272.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "2076e44f-a05b-4bb8-bb46-d650d0111bdc", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 02:16:38Z], ~U[2026-01-01 02:16:38Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 20:16:38.620 [debug] QUERY OK source="sources" db=0.1ms idle=31.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:38.620 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:38.621 [debug] QUERY OK source="media_items" db=0.1ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1899680] 20:16:38.621 [debug] Current batch of media processed. Will check again in 1000ms 20:16:39.621 [debug] Current batch of media processed. Will check again in 1000ms 20:16:40.622 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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" => 837, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", "id" => "ZYC6_CJMu34", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZYC6_CJMu34", "playlist_index" => 3, "timestamp" => 1767025818, "title" => "The One Thing I Hate About Linux Flatpaks", "upload_date" => "20251229"} 20:16:40.623 [debug] QUERY OK source="sources" db=0.2ms idle=276.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:40.623 [debug] QUERY OK source="sources" db=0.1ms idle=277.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:40.627 [debug] QUERY OK source="media_items" db=3.7ms idle=277.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-29 16:30:18Z], 30] 20:16:40.629 [debug] QUERY OK source="media_items" db=0.9ms idle=281.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "996b8999-32b5-456d-b6bc-3962be5b5722", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 02:16:40Z], ~U[2026-01-01 02:16:40Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 20:16:40.629 [debug] QUERY OK source="sources" db=0.1ms idle=36.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:40.629 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:40.630 [debug] QUERY OK source="media_items" db=0.1ms 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 [1891625] 20:16:40.630 [debug] Current batch of media processed. Will check again in 1000ms 20:16:41.630 [debug] Current batch of media processed. Will check again in 1000ms 20:16:42.632 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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" => 1354, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", "id" => "upKM5mViQrY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=upKM5mViQrY", "playlist_index" => 4, "timestamp" => 1766939431, "title" => "It's Time To Make A Major Change On Linux", "upload_date" => "20251228"} 20:16:42.633 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=286.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:42.633 [debug] QUERY OK source="sources" db=0.1ms idle=286.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:42.637 [debug] QUERY OK source="media_items" db=3.6ms idle=287.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-28 16:30:31Z], 30] 20:16:42.638 [debug] QUERY OK source="media_items" db=1.1ms idle=291.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "efbfeb3e-0888-47b6-8f0c-aab76658fb61", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 02:16:42Z], ~U[2026-01-01 02:16:42Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 20:16:42.639 [debug] QUERY OK source="sources" db=0.1ms idle=42.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:42.639 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:42.639 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1883567] 20:16:42.639 [debug] Current batch of media processed. Will check again in 1000ms 20:16:43.640 [debug] Current batch of media processed. Will check again in 1000ms 20:16:44.642 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 773, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", "id" => "Aim-akCtpzM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Aim-akCtpzM", "playlist_index" => 5, "timestamp" => 1766853005, "title" => "Prepping For The Next Cloudflare Outage", "upload_date" => "20251227"} 20:16:44.643 [debug] QUERY OK source="sources" db=0.6ms idle=295.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:44.643 [debug] QUERY OK source="sources" db=0.1ms idle=296.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:44.647 [debug] QUERY OK source="media_items" db=3.8ms idle=296.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-27 16:30:05Z], 30] 20:16:44.648 [debug] QUERY OK source="media_items" db=0.9ms idle=301.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "68bae64c-17f8-43c9-b631-9eb41919bbcf", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 02:16:44Z], ~U[2026-01-01 02:16:44Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 20:16:44.649 [debug] QUERY OK source="sources" db=0.1ms idle=48.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:44.649 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:44.649 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1875639] 20:16:44.649 [debug] Current batch of media processed. Will check again in 1000ms 20:16:45.650 [debug] Current batch of media processed. Will check again in 1000ms 20:16:46.652 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1067, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", "id" => "Db_Nl8vHs9A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "playlist_index" => 6, "timestamp" => 1766680204, "title" => "Mozilla Firefox's Future Is Going To Be Interesting", "upload_date" => "20251225"} 20:16:46.653 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms 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 (?)) [30] 20:16:46.653 [debug] QUERY OK source="sources" db=0.1ms idle=306.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:46.658 [debug] QUERY OK source="media_items" db=4.6ms idle=307.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-25 16:30:04Z], 30] 20:16:46.659 [debug] QUERY OK source="media_items" db=1.0ms idle=312.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "ec1a224a-9e7d-4d4c-a7eb-e6ba79a2ee55", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 02:16:46Z], ~U[2026-01-01 02:16:46Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 20:16:46.660 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 20:16:46.660 [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] 20:16:46.660 [debug] QUERY OK source="media_items" db=0.2ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1859592] 20:16:46.660 [debug] Current batch of media processed. Will check again in 1000ms 20:16:47.661 [debug] Current batch of media processed. Will check again in 1000ms 20:16:47.700 [info] {"source":"oban","duration":3478,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:16:48.663 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 933, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", "id" => "WTatQTpRWPs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WTatQTpRWPs", "playlist_index" => 7, "timestamp" => 1766593822, "title" => "The Truth Of The First Linux Kernel CVE In Rust", "upload_date" => "20251224"} 20:16:48.663 [debug] QUERY OK source="sources" db=0.2ms idle=962.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 20:16:48.663 [debug] QUERY OK source="sources" db=0.1ms idle=317.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:48.668 [debug] QUERY OK source="media_items" db=4.6ms idle=317.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-24 16:30:22Z], 30] 20:16:48.670 [debug] QUERY OK source="media_items" db=0.9ms idle=322.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "a42e7fa0-9cf3-4509-9e4b-e560e5f16f4e", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 02:16:48Z], ~U[2026-01-01 02:16:48Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 20:16:48.670 [debug] QUERY OK source="sources" db=0.1ms idle=63.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:48.670 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:48.671 [debug] QUERY OK source="media_items" db=0.1ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1851616] 20:16:48.671 [debug] Current batch of media processed. Will check again in 1000ms 20:16:49.671 [debug] Current batch of media processed. Will check again in 1000ms 20:16:50.672 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1019, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", "id" => "2-obijeo_bU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2-obijeo_bU", "playlist_index" => 8, "timestamp" => 1766507402, "title" => "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "upload_date" => "20251223"} 20:16:50.673 [debug] QUERY OK source="sources" db=0.1ms idle=326.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 20:16:50.673 [debug] QUERY OK source="sources" db=0.1ms idle=326.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:50.677 [debug] QUERY OK source="media_items" db=3.9ms idle=326.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-23 16:30:02Z], 30] 20:16:50.680 [debug] QUERY OK source="media_items" db=2.3ms idle=331.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "366cf35e-fc27-4c2a-9daf-8d88a77e9f6a", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 02:16:50Z], ~U[2026-01-01 02:16:50Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 20:16:50.680 [debug] QUERY OK source="sources" db=0.1ms idle=69.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:50.680 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:50.681 [debug] QUERY OK source="media_items" db=0.2ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1843863] 20:16:50.681 [debug] Current batch of media processed. Will check again in 1000ms 20:16:51.681 [debug] Current batch of media processed. Will check again in 1000ms 20:16:52.683 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1008, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", "id" => "Y_9BrE3JzWY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "playlist_index" => 9, "timestamp" => 1766421016, "title" => "Let Me Rant About Computers For 16 Minutes", "upload_date" => "20251222"} 20:16:52.683 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=336.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:52.684 [debug] QUERY OK source="sources" db=0.1ms idle=337.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:52.688 [debug] QUERY OK source="media_items" db=3.8ms idle=337.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-22 16:30:16Z], 30] 20:16:52.689 [debug] QUERY OK source="media_items" db=0.9ms idle=341.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "3bb00462-f8f4-4edf-9e14-4abc6e36c35a", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 02:16:52Z], ~U[2026-01-01 02:16:52Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 20:16:52.689 [debug] QUERY OK source="sources" db=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" = ?) [30] 20:16:52.690 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:52.690 [debug] QUERY OK source="media_items" db=0.2ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1835824] 20:16:52.690 [debug] Current batch of media processed. Will check again in 1000ms 20:16:53.691 [debug] Current batch of media processed. Will check again in 1000ms 20:16:54.693 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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" => 1190, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", "id" => "8PTlYeLBKvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8PTlYeLBKvI", "playlist_index" => 10, "timestamp" => 1766334607, "title" => "FOSS Is Always One Maintainer From Collapsing", "upload_date" => "20251221"} 20:16:54.693 [debug] QUERY OK source="sources" db=0.1ms idle=346.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:54.693 [debug] QUERY OK source="sources" db=0.0ms idle=347.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:54.697 [debug] QUERY OK source="media_items" db=3.9ms idle=347.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-21 16:30:07Z], 30] 20:16:54.699 [debug] QUERY OK source="media_items" db=1.0ms idle=351.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "c1b00846-1724-478b-bfe3-dcb2aa21ac25", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 02:16:54Z], ~U[2026-01-01 02:16:54Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 20:16:54.699 [debug] QUERY OK source="sources" db=0.1ms idle=81.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:54.699 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:54.700 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1827811] 20:16:54.700 [debug] Current batch of media processed. Will check again in 1000ms 20:16:55.700 [debug] Current batch of media processed. Will check again in 1000ms 20:16:56.702 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1179, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", "id" => "AY5kRPexQz4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AY5kRPexQz4", "playlist_index" => 11, "timestamp" => 1766248204, "title" => "Is This A Serious Attempt At A Linux Phone?", "upload_date" => "20251220"} 20:16:56.703 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=355.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:56.703 [debug] QUERY OK source="sources" db=0.1ms idle=356.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:56.707 [debug] QUERY OK source="media_items" db=3.8ms idle=356.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-20 16:30:04Z], 30] 20:16:56.708 [debug] QUERY OK source="media_items" db=1.0ms idle=360.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "7964ebf0-7797-46e1-a7b2-9be59425f98a", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 02:16:56Z], ~U[2026-01-01 02:16:56Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 20:16:56.709 [debug] QUERY OK source="sources" db=0.1ms idle=86.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:16:56.709 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:56.709 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1819814] 20:16:56.709 [debug] Current batch of media processed. Will check again in 1000ms 20:16:57.710 [debug] Current batch of media processed. Will check again in 1000ms 20:16:58.711 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", "id" => "3kZJrQNE3Lw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "playlist_index" => 12, "timestamp" => 1766075400, "title" => "KDE And GNOME Finally Have A Real Competitor", "upload_date" => "20251218"} 20:16:58.712 [debug] QUERY OK source="sources" db=0.1ms idle=365.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:16:58.712 [debug] QUERY OK source="sources" db=0.1ms idle=365.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:58.716 [debug] QUERY OK source="media_items" db=3.8ms idle=365.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-18 16:30:00Z], 30] 20:16:58.717 [debug] QUERY OK source="media_items" db=0.9ms idle=370.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "91a04e9a-39d7-49dd-8eed-fed3d35fc31a", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 02:16:58Z], ~U[2026-01-01 02:16:58Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 20:16:58.718 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:16:58.718 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:16:58.718 [debug] QUERY OK source="media_items" db=0.2ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1804241] 20:16:58.718 [debug] Current batch of media processed. Will check again in 1000ms 20:16:59.719 [debug] Current batch of media processed. Will check again in 1000ms 20:17:00.720 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 966, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", "id" => "5AePMwjV3E4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5AePMwjV3E4", "playlist_index" => 13, "timestamp" => 1765989001, "title" => "The Craziest Linux User Found My Email Address", "upload_date" => "20251217"} 20:17:00.721 [debug] QUERY OK source="sources" db=0.1ms idle=374.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:00.721 [debug] QUERY OK source="sources" db=0.1ms idle=374.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:00.725 [debug] QUERY OK source="media_items" db=3.8ms 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[2025-12-17 16:30:01Z], 30] 20:17:00.726 [debug] QUERY OK source="media_items" db=0.9ms idle=378.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "e30e1fa2-6639-4f72-bd9f-194688671276", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 02:17:00Z], ~U[2026-01-01 02:17:00Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 20:17:00.726 [debug] QUERY OK source="sources" db=0.1ms idle=96.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:17:00.727 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:00.727 [debug] QUERY OK source="media_items" db=0.1ms 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 [1796109] 20:17:00.727 [debug] Current batch of media processed. Will check again in 1000ms 20:17:00.900 [info] {"source":"oban","duration":496,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:17:01.728 [debug] Current batch of media processed. Will check again in 1000ms 20:17:02.729 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1526, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", "id" => "kwXn_GSd8cA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kwXn_GSd8cA", "playlist_index" => 14, "timestamp" => 1765902617, "title" => "The Rust Linux Kernel Experiment Is Finally Over!!", "upload_date" => "20251216"} 20:17:02.730 [debug] QUERY OK source="sources" db=0.2ms idle=383.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:02.730 [debug] QUERY OK source="sources" db=0.2ms idle=383.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:02.735 [debug] QUERY OK source="media_items" db=4.9ms idle=383.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-16 16:30:17Z], 30] 20:17:02.737 [debug] QUERY OK source="media_items" db=1.1ms idle=389.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "c2be173c-7bdd-4b53-b0f9-08c531788274", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 02:17:02Z], ~U[2026-01-01 02:17:02Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 20:17:02.737 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 20:17:02.738 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:02.738 [debug] QUERY OK source="media_items" db=0.1ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1788245] 20:17:02.738 [debug] Current batch of media processed. Will check again in 1000ms 20:17:03.739 [debug] Current batch of media processed. Will check again in 1000ms 20:17:04.740 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 808, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", "id" => "IB_0rR0imno", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IB_0rR0imno", "playlist_index" => 15, "timestamp" => 1765816207, "title" => "I Was Right Again About My Linux Home Directory", "upload_date" => "20251215"} 20:17:04.741 [debug] QUERY OK source="sources" db=0.1ms idle=393.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:04.741 [debug] QUERY OK source="sources" db=0.0ms idle=394.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:04.745 [debug] QUERY OK source="media_items" db=3.9ms idle=394.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 16:30:07Z], 30] 20:17:04.747 [debug] QUERY OK source="media_items" db=1.0ms idle=398.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "e05117db-e79e-4b4a-92b8-bf9a38e6e7a5", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 02:17:04Z], ~U[2026-01-01 02:17:04Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 20:17:04.747 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 20:17:04.747 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:04.747 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1780315] 20:17:04.748 [debug] Current batch of media processed. Will check again in 1000ms 20:17:05.748 [debug] Current batch of media processed. Will check again in 1000ms 20:17:06.749 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 981, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", "id" => "LbK_xreMSio", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LbK_xreMSio", "playlist_index" => 16, "timestamp" => 1765729806, "title" => "This Is The Kind Project I Love Linux For!!", "upload_date" => "20251214"} 20:17:06.750 [debug] QUERY OK source="sources" db=0.2ms idle=402.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:06.750 [debug] QUERY OK source="sources" db=0.1ms idle=403.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:06.754 [debug] QUERY OK source="media_items" db=3.8ms idle=403.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-14 16:30:06Z], 30] 20:17:06.755 [debug] QUERY OK source="media_items" db=1.0ms idle=407.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "758ad879-fb23-4a42-a076-9f21ed54a2c5", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 02:17:06Z], ~U[2026-01-01 02:17:06Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 20:17:06.756 [debug] QUERY OK source="sources" db=0.1ms idle=115.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:17:06.756 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:06.756 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1772387] 20:17:06.756 [debug] Current batch of media processed. Will check again in 1000ms 20:17:07.757 [debug] Current batch of media processed. Will check again in 1000ms 20:17:08.758 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 780, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", "id" => "OEPcLRH-Eiw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "playlist_index" => 17, "timestamp" => 1765643418, "title" => "Valve, We NEED A 64 Bit Steam Client On Linux!!", "upload_date" => "20251213"} 20:17:08.759 [debug] QUERY OK source="sources" db=0.1ms idle=412.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:08.759 [debug] QUERY OK source="sources" db=0.1ms idle=412.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:08.763 [debug] QUERY OK source="media_items" db=3.8ms idle=412.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-13 16:30:18Z], 30] 20:17:08.765 [debug] QUERY OK source="media_items" db=1.0ms idle=416.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "04c85196-9b7d-450d-ab53-88338dcaf69e", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 02:17:08Z], ~U[2026-01-01 02:17:08Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 20:17:08.765 [debug] QUERY OK source="sources" db=0.1ms idle=120.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:08.765 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:08.765 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1764416] 20:17:08.765 [debug] Current batch of media processed. Will check again in 1000ms 20:17:09.766 [debug] Current batch of media processed. Will check again in 1000ms 20:17:10.767 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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" => 2001, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", "id" => "PmjBZDGJzDQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "playlist_index" => 18, "timestamp" => 1765470611, "title" => "The Scientifically Correct Arch Linux User", "upload_date" => "20251211"} 20:17:10.768 [debug] QUERY OK source="sources" db=0.2ms idle=421.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:10.768 [debug] QUERY OK source="sources" db=0.2ms idle=422.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:10.773 [debug] QUERY OK source="media_items" db=4.0ms idle=422.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 16:30:11Z], 30] 20:17:10.774 [debug] QUERY OK source="media_items" db=0.9ms idle=426.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "945f009a-109e-47ee-9069-eb291e344489", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 02:17:10Z], ~U[2026-01-01 02:17:10Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 20:17:10.774 [debug] QUERY OK source="sources" db=0.1ms idle=124.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:17:10.774 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:10.775 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1748497] 20:17:10.775 [debug] Current batch of media processed. Will check again in 1000ms 20:17:11.776 [debug] Current batch of media processed. Will check again in 1000ms 20:17:12.777 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 894, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", "id" => "N_X7clyPE5Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N_X7clyPE5Q", "playlist_index" => 19, "timestamp" => 1765384216, "title" => "You Control The Future Of Xorg On Linux!!", "upload_date" => "20251210"} 20:17:12.778 [debug] QUERY OK source="sources" db=0.2ms idle=431.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:12.778 [debug] QUERY OK source="sources" db=0.1ms idle=431.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:12.782 [debug] QUERY OK source="media_items" db=3.7ms idle=432.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-10 16:30:16Z], 30] 20:17:12.783 [debug] QUERY OK source="media_items" db=0.8ms idle=436.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "aceb8277-31fc-428b-8e98-e9981379e3b1", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 02:17:12Z], ~U[2026-01-01 02:17:12Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 20:17:12.784 [debug] QUERY OK source="sources" db=0.1ms idle=130.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:17:12.784 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:12.784 [debug] QUERY OK source="media_items" db=0.1ms 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 [1740622] 20:17:12.784 [debug] Current batch of media processed. Will check again in 1000ms 20:17:13.785 [debug] Current batch of media processed. Will check again in 1000ms 20:17:14.437 [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/20/d1/20d10c68408c36b4ec718a34926f0ad7790042287c1e92b350ff3fa49dca2190.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/e6/dd/e6ddf1d2fdd552e057e08a3d143e835ed086c7ead69065702865cf9ff8e30c54.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:17:14.437 [debug] Gracefully stopping file follower 20:17:14.438 [debug] QUERY OK source="sources" db=0.1ms idle=782.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:17:14.438 [debug] QUERY OK source="sources" db=0.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.442 [debug] QUERY OK source="media_items" db=3.7ms idle=91.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-31 16:30:17Z], 30] 20:17:14.443 [debug] QUERY OK source="media_items" db=0.9ms idle=95.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "f6728198-bd2d-41e6-ba60-44bf4624e325", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 20:17:14.443 [debug] QUERY OK source="sources" db=0.0ms idle=97.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.447 [debug] QUERY OK source="media_items" db=3.6ms 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-30 16:30:20Z], 30] 20:17:14.448 [debug] QUERY OK source="media_items" db=1.0ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "ee46248f-49c2-40ff-9e84-b7508a0fe65e", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 20:17:14.449 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 20:17:14.453 [debug] QUERY OK source="media_items" db=3.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[2025-12-29 16:30:18Z], 30] 20:17:14.454 [debug] QUERY OK source="media_items" db=0.8ms idle=9.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "90573971-9831-4332-8e1e-fc224cb3278f", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 20:17:14.455 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 20:17:14.458 [debug] QUERY OK source="media_items" db=3.4ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-28 16:30:31Z], 30] 20:17:14.472 [debug] QUERY OK source="media_items" db=12.9ms idle=9.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "d40d648d-1f40-4587-bd9d-a70675672cfe", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 20:17:14.473 [debug] QUERY OK source="sources" db=0.8ms 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" = ?) [30] 20:17:14.476 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-27 16:30:05Z], 30] 20:17:14.483 [debug] QUERY OK source="media_items" db=6.3ms idle=21.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "f5d0dd9a-e5bb-4b43-8921-836077e97703", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 20:17:14.484 [debug] QUERY OK source="sources" db=0.5ms idle=25.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.488 [debug] QUERY OK source="media_items" db=3.5ms idle=12.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-25 16:30:04Z], 30] 20:17:14.489 [debug] QUERY OK source="media_items" db=1.0ms idle=14.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "ae7cc4de-3561-4a3c-a503-78074ce32d90", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 20:17:14.490 [debug] QUERY OK source="sources" db=0.5ms idle=12.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.493 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-24 16:30:22Z], 30] 20:17:14.494 [debug] QUERY OK source="media_items" db=0.9ms idle=9.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "ac68f79d-fdf2-42ec-9e4e-342b61c76b1e", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 20:17:14.495 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 20:17:14.499 [debug] QUERY OK source="media_items" db=3.4ms idle=6.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-23 16:30:02Z], 30] 20:17:14.500 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "2bb6da6d-3aa2-4413-b93c-bde042f9830a", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 20:17:14.500 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.504 [debug] QUERY OK source="media_items" db=3.7ms 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[2025-12-22 16:30:16Z], 30] 20:17:14.505 [debug] QUERY OK source="media_items" db=0.8ms idle=9.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "1ca978ee-1f4f-4ed4-a6ac-b842364f1371", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 20:17:14.506 [debug] QUERY OK source="sources" db=0.4ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.510 [debug] QUERY OK source="media_items" db=3.3ms idle=6.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-21 16:30:07Z], 30] 20:17:14.511 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "2e233d79-0b75-46e2-b94d-09123447b8aa", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 20:17:14.511 [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" = ?) [30] 20:17:14.515 [debug] QUERY OK source="media_items" db=3.6ms 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[2025-12-20 16:30:04Z], 30] 20:17:14.517 [debug] QUERY OK source="media_items" db=1.0ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "7e4be8b1-4896-4ecc-b52a-7567589a1e91", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 20:17:14.517 [debug] QUERY OK source="sources" db=0.4ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.521 [debug] QUERY OK source="media_items" db=3.3ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 16:30:00Z], 30] 20:17:14.522 [debug] QUERY OK source="media_items" db=0.9ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "08322338-13e9-4cc4-b753-cd5f5ebdd101", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 20:17:14.522 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.526 [debug] QUERY OK source="media_items" db=3.3ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-17 16:30:01Z], 30] 20:17:14.527 [debug] QUERY OK source="media_items" db=0.8ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "086100dd-87b7-4034-bb76-eb1f852c5082", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 20:17:14.528 [debug] QUERY OK source="sources" db=0.4ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.531 [debug] QUERY OK source="media_items" db=3.3ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 16:30:17Z], 30] 20:17:14.532 [debug] QUERY OK source="media_items" db=1.1ms idle=8.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "fc07b5c0-9170-4d79-ac27-15368eb4182f", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 20:17:14.533 [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" = ?) [30] 20:17:14.537 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-15 16:30:07Z], 30] 20:17:14.538 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "a78d7b72-6d37-443f-a49d-b592df5e0903", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 20:17:14.538 [debug] QUERY OK source="sources" db=0.4ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.542 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-14 16:30:06Z], 30] 20:17:14.543 [debug] QUERY OK source="media_items" db=0.9ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "0a1342db-1a0e-4a33-9729-e6751a0a4938", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 20:17:14.544 [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" = ?) [30] 20:17:14.547 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-13 16:30:18Z], 30] 20:17:14.548 [debug] QUERY OK source="media_items" db=0.9ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "576ca5a8-9fe0-4ca5-a59f-b194beb41b4f", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 20:17:14.549 [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" = ?) [30] 20:17:14.553 [debug] QUERY OK source="media_items" db=3.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[2025-12-11 16:30:11Z], 30] 20:17:14.554 [debug] QUERY OK source="media_items" db=0.8ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "0134c241-7808-43d5-9314-247a34e1339c", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 20:17:14.554 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:17:14.558 [debug] QUERY OK source="media_items" db=3.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[2025-12-10 16:30:16Z], 30] 20:17:14.559 [debug] QUERY OK source="media_items" db=0.8ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "d1514baa-86fe-49b2-bd5e-d7b19894ba76", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 20:17:14.560 [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" = ?) [30] 20:17:14.563 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-09 16:30:12Z], 30] 20:17:14.564 [debug] QUERY OK source="media_items" db=0.8ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "cad40c54-2da5-4381-924a-b3e1321c7676", "https://www.youtube.com/watch?v=HAhmUhLVuAc", false, "HAhmUhLVuAc", 30, [], 836, false, 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, false, 98, ~U[2025-12-09 16:30:12Z], ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], "Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "https://www.youtube.com/watch?v=HAhmUhLVuAc", "HAhmUhLVuAc", 30, 836, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, ~U[2025-12-09 16:30:12Z]] 20:17:14.565 [debug] QUERY OK source="sources" db=0.4ms idle=6.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z], 30] 20:17:14.569 [debug] QUERY OK source="media_items" db=3.5ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 20:17:14.572 [debug] QUERY OK source="media_items" db=3.5ms idle=9.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] 20:17:14.573 [debug] QUERY OK source="media_items" db=0.6ms idle=9.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 20:17:14.574 [debug] QUERY OK source="tasks" db=0.4ms idle=5.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88161, 30, ~U[2026-01-01 02:17:14Z], ~U[2026-01-01 02:17:14Z]] 20:17:14.575 [info] {"args":{"id":30},"id":88148,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":41986092,"event":"job:stop","queue_time":535046,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:17:17.705 [info] {"source":"oban","duration":3753,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:17:47.710 [info] {"source":"oban","duration":4357,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:17:59.743 [info] {"args":{"id":1801607},"id":87855,"meta":{},"system_time":1767233879743069498,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:17:59.743 [debug] QUERY OK source="media_items" db=0.2ms 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" = ?) [1801607] 20:17:59.743 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:17:59.744 [debug] QUERY OK source="sources" db=0.4ms idle=397.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:17:59.744 [debug] QUERY OK source="media_profiles" db=0.1ms idle=397.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:59.744 [debug] QUERY OK source="media_items" db=0.2ms idle=8.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1801607] 20:17:59.746 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1801607] 20:17:59.746 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:17:59.746 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:17:59.746 [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 [] 20:17:59.746 [debug] Running yt-dlp command for action: get_downloadable_status 20:17:59.747 [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 [] 20:17:59.747 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:17:59.747 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:17:59.747 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rGqKAmDdmXM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/80/61/8061183fa87f3d818f3ef44557c21aa422e3803bf0d3552eed85a0c8f8305b8c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:18:00.901 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:18:01.955 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rGqKAmDdmXM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/80/61/8061183fa87f3d818f3ef44557c21aa422e3803bf0d3552eed85a0c8f8305b8c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] rGqKAmDdmXM: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:18:01.955 [error] yt-dlp download error for media item #1801607: "ERROR: [youtube] rGqKAmDdmXM: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:18:01.956 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1801607},"id":87855,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2213024,"event":"job:exception","queue_time":303104,"attempt":16,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:18:17.714 [info] {"source":"oban","duration":3551,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:18:47.718 [info] {"source":"oban","duration":3942,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:00.902 [info] {"source":"oban","duration":153,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:19:17.723 [info] {"source":"oban","duration":3639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:22.847 [info] {"args":{"id":38},"id":88110,"meta":{},"system_time":1767233962847785740,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:19:22.848 [debug] QUERY OK source="sources" db=0.1ms idle=1501.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:22.848 [debug] QUERY OK source="settings" db=0.1ms idle=1501.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:22.849 [debug] QUERY OK source="media_items" db=1.2ms idle=1009.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")))) [38] 20:19:22.850 [debug] QUERY OK source="media_items" db=0.3ms idle=9.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 20:19:22.850 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:22.850 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:22.850 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:22.852 [debug] QUERY OK source="media_items" db=0.8ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [38] 20:19:22.853 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:19:22.853 [debug] Current batch of media processed. Will check again in 1000ms 20:19:22.853 [debug] QUERY OK source="settings" db=0.0ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:22.853 [debug] QUERY OK source="settings" db=0.0ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:22.854 [debug] QUERY OK source="settings" db=0.0ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:22.854 [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/d4/9c/d49c51febd9baac92270eea20fa8a078362eb7291a001fec523ef762a7e5df3d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/7a/39/7a39af6e387b592d98a70f476110b074b5bcc16256128e334a41eaa275aa20ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:19:23.854 [debug] Current batch of media processed. Will check again in 1000ms 20:19:24.855 [debug] Current batch of media processed. Will check again in 1000ms 20:19:25.856 [debug] Current batch of media processed. Will check again in 1000ms 20:19:26.858 [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" => 1, "timestamp" => 1766579473, "title" => "Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy", "upload_date" => "20251224"} 20:19:26.858 [debug] QUERY OK source="sources" db=0.1ms idle=511.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:26.858 [debug] QUERY OK source="sources" db=0.0ms idle=512.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:26.860 [debug] QUERY OK source="media_items" db=0.9ms idle=512.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-24 12:31:13Z], 38] 20:19:26.863 [debug] QUERY OK source="media_items" db=2.9ms idle=513.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "2041d5c1-5136-40eb-bb7e-d3163d726efc", "https://www.youtube.com/watch?v=jqHh06r2-Wc", false, "jqHh06r2-Wc", 38, [], 401, false, 1, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, false, 98, ~U[2025-12-24 12:31:13Z], ~U[2026-01-01 02:19:26Z], ~U[2026-01-01 02:19:26Z], "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", "https://www.youtube.com/watch?v=jqHh06r2-Wc", "jqHh06r2-Wc", 38, 401, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, ~U[2025-12-24 12:31:13Z]] 20:19:26.863 [debug] QUERY OK source="sources" db=0.2ms idle=18.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:26.863 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:26.864 [debug] QUERY OK source="media_items" db=0.1ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1850728] 20:19:26.864 [debug] Current batch of media processed. Will check again in 1000ms 20:19:27.864 [debug] Current batch of media processed. Will check again in 1000ms 20:19:28.865 [debug] Current batch of media processed. Will check again in 1000ms 20:19:29.866 [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" => 2, "timestamp" => 1766061000, "title" => "Bevy 0.18 Release Candidate, Metrics Dashboard, and more - This Week in Bevy", "upload_date" => "20251218"} 20:19:29.866 [debug] QUERY OK source="sources" db=0.1ms idle=1520.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:29.867 [debug] QUERY OK source="sources" db=0.1ms idle=1520.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:29.868 [debug] QUERY OK source="media_items" db=0.8ms idle=1520.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 12:30:00Z], 38] 20:19:29.869 [debug] QUERY OK source="media_items" db=0.8ms idle=1020.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "12ef240b-100a-4331-8b9c-afe266fda039", "https://www.youtube.com/watch?v=g8t-LRr3M2A", false, "g8t-LRr3M2A", 38, [], 536, false, 2, "/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, 98, ~U[2025-12-18 12:30:00Z], ~U[2026-01-01 02:19:29Z], ~U[2026-01-01 02:19:29Z], "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", "https://www.youtube.com/watch?v=g8t-LRr3M2A", "g8t-LRr3M2A", 38, 536, false, "/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, ~U[2025-12-18 12:30:00Z]] 20:19:29.869 [debug] QUERY OK source="sources" db=0.1ms idle=20.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:19:29.869 [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] 20:19:29.870 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1803892] 20:19:29.870 [debug] Current batch of media processed. Will check again in 1000ms 20:19:30.870 [debug] Current batch of media processed. Will check again in 1000ms 20:19:31.871 [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" => 3, "timestamp" => 1765542640, "title" => "Day 12 - Advent of Code 2025", "upload_date" => "20251212"} 20:19:31.872 [debug] QUERY OK source="sources" db=0.1ms idle=525.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:31.872 [debug] QUERY OK source="sources" db=0.0ms idle=525.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:31.873 [debug] QUERY OK source="media_items" db=0.8ms idle=525.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 12:30:40Z], 38] 20:19:31.874 [debug] QUERY OK source="media_items" db=0.5ms idle=527.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "7dfdb664-4cfa-4c9d-89f5-330123735add", "https://www.youtube.com/watch?v=QX7w2oJzX9Y", false, "QX7w2oJzX9Y", 38, [], 1331, false, 3, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-12 12:30:40Z], ~U[2026-01-01 02:19:31Z], ~U[2026-01-01 02:19:31Z], "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", "https://www.youtube.com/watch?v=QX7w2oJzX9Y", "QX7w2oJzX9Y", 38, 1331, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, ~U[2025-12-12 12:30:40Z]] 20:19:31.874 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:31.874 [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] 20:19:31.874 [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 [1755808] 20:19:31.874 [debug] Current batch of media processed. Will check again in 1000ms 20:19:32.875 [debug] Current batch of media processed. Will check again in 1000ms 20:19:33.876 [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" => 4, "timestamp" => 1765456267, "title" => "Day 11 - Advent of Code 2025", "upload_date" => "20251211"} 20:19:33.877 [debug] QUERY OK source="sources" db=0.2ms idle=530.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:33.877 [debug] QUERY OK source="sources" db=0.1ms idle=530.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:33.878 [debug] QUERY OK source="media_items" db=0.9ms idle=531.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-11 12:31:07Z], 38] 20:19:33.879 [debug] QUERY OK source="media_items" db=0.5ms idle=532.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "b5a8f5fc-ae06-40d4-b474-ff14c58f60ef", "https://www.youtube.com/watch?v=gYc9yptZh3Q", false, "gYc9yptZh3Q", 38, [], 1605, false, 4, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-11 12:31:07Z], ~U[2026-01-01 02:19:33Z], ~U[2026-01-01 02:19:33Z], "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", "https://www.youtube.com/watch?v=gYc9yptZh3Q", "gYc9yptZh3Q", 38, 1605, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, ~U[2025-12-11 12:31:07Z]] 20:19:33.879 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:33.880 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:33.880 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1747915] 20:19:33.880 [debug] Current batch of media processed. Will check again in 1000ms 20:19:34.881 [debug] Current batch of media processed. Will check again in 1000ms 20:19:35.882 [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" => 5, "timestamp" => 1765369841, "title" => "Day 10 - Advent of Code 2025 (No Part 2)", "upload_date" => "20251210"} 20:19:35.883 [debug] QUERY OK source="sources" db=0.2ms idle=536.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:35.883 [debug] QUERY OK source="sources" db=0.1ms idle=537.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:35.884 [debug] QUERY OK source="media_items" db=0.8ms idle=537.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-10 12:30:41Z], 38] 20:19:35.885 [debug] QUERY OK source="media_items" db=0.5ms idle=538.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "555c46fb-38ec-4841-8e30-f26e299a893b", "https://www.youtube.com/watch?v=P_6IwxCTHR8", false, "P_6IwxCTHR8", 38, [], 1971, false, 5, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, false, 98, ~U[2025-12-10 12:30:41Z], ~U[2026-01-01 02:19:35Z], ~U[2026-01-01 02:19:35Z], "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)", "https://www.youtube.com/watch?v=P_6IwxCTHR8", "P_6IwxCTHR8", 38, 1971, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, ~U[2025-12-10 12:30:41Z]] 20:19:35.886 [debug] QUERY OK source="sources" db=0.1ms idle=30.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:35.886 [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] 20:19:35.886 [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 [1740020] 20:19:35.886 [debug] Current batch of media processed. Will check again in 1000ms 20:19:36.887 [debug] Current batch of media processed. Will check again in 1000ms 20:19:37.888 [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" => 6, "timestamp" => 1765283442, "title" => "Day 09 - Advent of Code 2025", "upload_date" => "20251209"} 20:19:37.889 [debug] QUERY OK source="sources" db=0.1ms idle=542.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:37.889 [debug] QUERY OK source="sources" db=0.1ms idle=542.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:37.890 [debug] QUERY OK source="media_items" db=0.9ms idle=542.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 12:30:42Z], 38] 20:19:37.891 [debug] QUERY OK source="media_items" db=0.6ms idle=543.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "4047a007-8d7b-4956-b5aa-85a0110ce076", "https://www.youtube.com/watch?v=RyLuE5xFLxw", false, "RyLuE5xFLxw", 38, [], 1776, false, 6, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-09 12:30:42Z], ~U[2026-01-01 02:19:37Z], ~U[2026-01-01 02:19:37Z], "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", "https://www.youtube.com/watch?v=RyLuE5xFLxw", "RyLuE5xFLxw", 38, 1776, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, ~U[2025-12-09 12:30:42Z]] 20:19:37.891 [debug] QUERY OK source="sources" db=0.1ms idle=34.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:19:37.891 [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] 20:19:37.892 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1732004] 20:19:37.892 [debug] Current batch of media processed. Will check again in 1000ms 20:19:38.892 [debug] Current batch of media processed. Will check again in 1000ms 20:19:39.894 [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" => 7, "timestamp" => 1765199566, "title" => "Day 08 - Advent of Code 2025", "upload_date" => "20251208"} 20:19:39.894 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=548.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:39.895 [debug] QUERY OK source="sources" db=0.0ms idle=548.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:39.896 [debug] QUERY OK source="media_items" db=0.8ms idle=548.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] 20:19:39.896 [debug] QUERY OK source="media_items" db=0.5ms idle=549.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "1b06a83f-1746-4c94-a3a3-697d81a769ea", "https://www.youtube.com/watch?v=auLtaZFB89Q", false, "auLtaZFB89Q", 38, [], 2159, false, 7, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-08 13:12:46Z], ~U[2026-01-01 02:19:39Z], ~U[2026-01-01 02:19:39Z], "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", "https://www.youtube.com/watch?v=auLtaZFB89Q", "auLtaZFB89Q", 38, 2159, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, ~U[2025-12-08 13:12:46Z]] 20:19:39.897 [debug] QUERY OK source="sources" db=0.1ms idle=37.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:39.897 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:39.897 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1724024] 20:19:39.897 [debug] Current batch of media processed. Will check again in 1000ms 20:19:40.898 [debug] Current batch of media processed. Will check again in 1000ms 20:19:41.899 [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" => 8, "timestamp" => 1765110645, "title" => "Day 07 - Advent of Code 2025", "upload_date" => "20251207"} 20:19:41.900 [debug] QUERY OK source="sources" db=0.1ms idle=553.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:41.900 [debug] QUERY OK source="sources" db=0.1ms idle=553.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:41.901 [debug] QUERY OK source="media_items" db=0.9ms idle=553.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 12:30:45Z], 38] 20:19:41.902 [debug] QUERY OK source="media_items" db=0.6ms idle=555.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "29bf07fe-19b7-4616-a353-8fe03af2aa6a", "https://www.youtube.com/watch?v=WydCrKP1tOk", false, "WydCrKP1tOk", 38, [], 1695, false, 8, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-07 12:30:45Z], ~U[2026-01-01 02:19:41Z], ~U[2026-01-01 02:19: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", "https://www.youtube.com/watch?v=WydCrKP1tOk", "WydCrKP1tOk", 38, 1695, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, ~U[2025-12-07 12:30:45Z]] 20:19:41.902 [debug] QUERY OK source="sources" db=0.1ms idle=41.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:41.902 [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] 20:19:41.903 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1716069] 20:19:41.903 [debug] Current batch of media processed. Will check again in 1000ms 20:19:42.903 [debug] Current batch of media processed. Will check again in 1000ms 20:19:43.904 [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" => 9, "timestamp" => 1765024292, "title" => "Day 06 - Advent of Code 2025", "upload_date" => "20251206"} 20:19:43.905 [debug] QUERY OK source="sources" db=0.3ms idle=558.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:43.905 [debug] QUERY OK source="sources" db=0.1ms idle=559.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:43.906 [debug] QUERY OK source="media_items" db=0.9ms idle=559.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] 20:19:43.907 [debug] QUERY OK source="media_items" db=0.5ms idle=560.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "61497233-c9c3-4985-922a-301012c985e2", "https://www.youtube.com/watch?v=wtkYs63qE_8", false, "wtkYs63qE_8", 38, [], 2631, false, 9, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-06 12:31:32Z], ~U[2026-01-01 02:19:43Z], ~U[2026-01-01 02:19:43Z], "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", "https://www.youtube.com/watch?v=wtkYs63qE_8", "wtkYs63qE_8", 38, 2631, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, ~U[2025-12-06 12:31:32Z]] 20:19:43.908 [debug] QUERY OK source="sources" db=0.2ms idle=43.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:43.908 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:43.908 [debug] QUERY OK source="media_items" db=0.2ms 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 [1708301] 20:19:43.908 [debug] Current batch of media processed. Will check again in 1000ms 20:19:44.872 [info] {"args":{"id":51},"id":88158,"meta":{},"system_time":1767233984872062260,"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"]} 20:19:44.872 [debug] QUERY OK source="sources" db=0.1ms idle=964.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:44.872 [debug] QUERY OK source="settings" db=0.1ms idle=964.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:44.873 [debug] QUERY OK source="media_profiles" db=0.2ms idle=964.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:44.873 [debug] QUERY OK source="settings" db=0.1ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:19:44.873 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 20:19:44.909 [debug] Current batch of media processed. Will check again in 1000ms 20:19:45.180 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:19:45.181 [debug] QUERY OK source="media_items" db=0.5ms idle=308.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:19:45.182 [debug] QUERY OK source="media_items" db=0.3ms idle=309.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] 20:19:45.182 [debug] QUERY OK source="tasks" db=0.1ms idle=309.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88162, 51, ~U[2026-01-01 02:19:45Z], ~U[2026-01-01 02:19:45Z]] 20:19:45.183 [info] {"args":{"id":51},"id":88158,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":310866,"event":"job:stop","queue_time":628483,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 20:19:45.911 [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" => 10, "timestamp" => 1764937813, "title" => "Day 05 - Advent of Code 2025", "upload_date" => "20251205"} 20:19:45.912 [debug] QUERY OK source="sources" db=0.4ms idle=728.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:45.912 [debug] QUERY OK source="sources" db=0.2ms idle=729.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:45.913 [debug] QUERY OK source="media_items" db=0.9ms idle=729.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 12:30:13Z], 38] 20:19:45.914 [debug] QUERY OK source="media_items" db=0.6ms idle=724.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "d8047cdc-bcaa-45d7-84ce-ccfb63384110", "https://www.youtube.com/watch?v=9VFox4Z-Apc", false, "9VFox4Z-Apc", 38, [], 1997, false, 10, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-05 12:30:13Z], ~U[2026-01-01 02:19:45Z], ~U[2026-01-01 02:19:45Z], "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", "https://www.youtube.com/watch?v=9VFox4Z-Apc", "9VFox4Z-Apc", 38, 1997, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, ~U[2025-12-05 12:30:13Z]] 20:19:45.914 [debug] QUERY OK source="sources" db=0.2ms idle=46.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:19:45.915 [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] 20:19:45.915 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1700307] 20:19:45.915 [debug] Current batch of media processed. Will check again in 1000ms 20:19:46.917 [debug] Current batch of media processed. Will check again in 1000ms 20:19:47.726 [info] {"source":"oban","duration":3374,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:47.917 [debug] Current batch of media processed. Will check again in 1000ms 20:19:48.919 [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" => 11, "timestamp" => 1764851416, "title" => "Day 04 - Advent of Code 2025", "upload_date" => "20251204"} 20:19:48.919 [debug] QUERY OK source="sources" db=0.2ms idle=1573.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:48.920 [debug] QUERY OK source="sources" db=0.1ms idle=1573.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:48.921 [debug] QUERY OK source="media_items" db=0.9ms idle=1193.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 12:30:16Z], 38] 20:19:48.922 [debug] QUERY OK source="media_items" db=0.6ms idle=1049.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "cf5bafe1-1476-4a97-b0aa-03263abcce8f", "https://www.youtube.com/watch?v=6sQcSpcOflI", false, "6sQcSpcOflI", 38, [], 2512, false, 11, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-04 12:30:16Z], ~U[2026-01-01 02:19:48Z], ~U[2026-01-01 02:19:48Z], "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", "https://www.youtube.com/watch?v=6sQcSpcOflI", "6sQcSpcOflI", 38, 2512, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, ~U[2025-12-04 12:30:16Z]] 20:19:48.922 [debug] QUERY OK source="sources" db=0.2ms idle=49.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:19:48.922 [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] 20:19:48.923 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1691828] 20:19:48.923 [debug] Current batch of media processed. Will check again in 1000ms 20:19:49.923 [debug] Current batch of media processed. Will check again in 1000ms 20:19:50.925 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "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", "duration" => 1878, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", "id" => "d28gm-rL_rA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=d28gm-rL_rA", "playlist_index" => 12, "timestamp" => 1764765063, "title" => "Day 03 - Advent of Code 2025", "upload_date" => "20251203"} 20:19:50.925 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=578.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:50.926 [debug] QUERY OK source="sources" db=0.0ms idle=579.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:50.927 [debug] QUERY OK source="media_items" db=0.9ms idle=579.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-03 12:31:03Z], 38] 20:19:50.928 [debug] QUERY OK source="media_items" db=0.5ms idle=580.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "85e774fa-4f05-4cae-9e23-096426dc6248", "https://www.youtube.com/watch?v=d28gm-rL_rA", false, "d28gm-rL_rA", 38, [], 1878, false, 12, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-03 12:31:03Z], ~U[2026-01-01 02:19:50Z], ~U[2026-01-01 02:19:50Z], "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", "https://www.youtube.com/watch?v=d28gm-rL_rA", "d28gm-rL_rA", 38, 1878, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", false, ~U[2025-12-03 12:31:03Z]] 20:19:50.928 [debug] QUERY OK source="sources" db=0.1ms idle=53.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:19:50.928 [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] 20:19:50.928 [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 [1684209] 20:19:50.929 [debug] Current batch of media processed. Will check again in 1000ms 20:19:51.929 [debug] Current batch of media processed. Will check again in 1000ms 20:19:52.930 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 02!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/f2ed674dd26a10a36c1838478bc9e5aa9c18c0ea/2025/rust/day-02/src/part2.rs\n\nhttps://adventofcode.com/2025/day/2\n\n\n00:00 - prep work\n03:02 - day 2 part 1\n06:43 - first test\n15:21 - part 1 recap\n16:37 - part 2\n28:03 - benchmarks with divan", "duration" => 1855, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120200_Day 02 - Advent of Code 2025.mp4", "id" => "LTT93lHogRM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LTT93lHogRM", "playlist_index" => 13, "timestamp" => 1764678637, "title" => "Day 02 - Advent of Code 2025", "upload_date" => "20251202"} 20:19:52.931 [debug] QUERY OK source="sources" db=0.2ms idle=584.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:52.931 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [38] 20:19:52.933 [debug] QUERY OK source="media_items" db=1.2ms idle=585.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-02 12:30:37Z], 38] 20:19:52.933 [debug] QUERY OK source="media_items" db=0.6ms idle=586.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Advent of Code Day 02!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/f2ed674dd26a10a36c1838478bc9e5aa9c18c0ea/2025/rust/day-02/src/part2.rs\n\nhttps://adventofcode.com/2025/day/2\n\n\n00:00 - prep work\n03:02 - day 2 part 1\n06:43 - first test\n15:21 - part 1 recap\n16:37 - part 2\n28:03 - benchmarks with divan", "Day 02 - Advent of Code 2025", "201ecaf5-0b56-4b0e-8925-28885f9337fb", "https://www.youtube.com/watch?v=LTT93lHogRM", false, "LTT93lHogRM", 38, [], 1855, false, 13, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120200_Day 02 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-02 12:30:37Z], ~U[2026-01-01 02:19:52Z], ~U[2026-01-01 02:19:52Z], "Advent of Code Day 02!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/f2ed674dd26a10a36c1838478bc9e5aa9c18c0ea/2025/rust/day-02/src/part2.rs\n\nhttps://adventofcode.com/2025/day/2\n\n\n00:00 - prep work\n03:02 - day 2 part 1\n06:43 - first test\n15:21 - part 1 recap\n16:37 - part 2\n28:03 - benchmarks with divan", "Day 02 - Advent of Code 2025", "https://www.youtube.com/watch?v=LTT93lHogRM", "LTT93lHogRM", 38, 1855, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120200_Day 02 - Advent of Code 2025.mp4", false, ~U[2025-12-02 12:30:37Z]] 20:19:52.934 [debug] QUERY OK source="sources" db=0.1ms idle=56.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:52.934 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:52.934 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1676346] 20:19:52.934 [debug] Current batch of media processed. Will check again in 1000ms 20:19:53.935 [debug] Current batch of media processed. Will check again in 1000ms 20:19:54.936 [debug] Current batch of media processed. Will check again in 1000ms 20:19:55.938 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Advent of Code Day 01!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/860e903fa81d85e7f28676923774b50677e311ab/2025/rust/day-01/src\n\nhttps://adventofcode.com/2025/day/1\n\n00:00 - Prep Work\n14:11 - Part 1\n16:20 - first test\n19:22 - enums and nom\n24:38 - check your input!\n26:09 - part 1 recap\n29:48 - part 2\n39:13 - rstest\n42:00 - folds", "duration" => 2682, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120100_Day 01 - Advent of Code 2025.mp4", "id" => "kHnuJyl3czA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kHnuJyl3czA", "playlist_index" => 14, "timestamp" => 1764592268, "title" => "Day 01 - Advent of Code 2025", "upload_date" => "20251201"} 20:19:55.939 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1592.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:55.939 [debug] QUERY OK source="sources" db=0.1ms idle=1592.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:55.940 [debug] QUERY OK source="media_items" db=0.8ms idle=1592.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-01 12:31:08Z], 38] 20:19:55.941 [debug] QUERY OK source="media_items" db=0.6ms idle=1060.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Advent of Code Day 01!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/860e903fa81d85e7f28676923774b50677e311ab/2025/rust/day-01/src\n\nhttps://adventofcode.com/2025/day/1\n\n00:00 - Prep Work\n14:11 - Part 1\n16:20 - first test\n19:22 - enums and nom\n24:38 - check your input!\n26:09 - part 1 recap\n29:48 - part 2\n39:13 - rstest\n42:00 - folds", "Day 01 - Advent of Code 2025", "23c5cde7-ca23-45d6-a3bb-c8a62d3cedf6", "https://www.youtube.com/watch?v=kHnuJyl3czA", false, "kHnuJyl3czA", 38, [], 2682, false, 14, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120100_Day 01 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-01 12:31:08Z], ~U[2026-01-01 02:19:55Z], ~U[2026-01-01 02:19:55Z], "Advent of Code Day 01!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/860e903fa81d85e7f28676923774b50677e311ab/2025/rust/day-01/src\n\nhttps://adventofcode.com/2025/day/1\n\n00:00 - Prep Work\n14:11 - Part 1\n16:20 - first test\n19:22 - enums and nom\n24:38 - check your input!\n26:09 - part 1 recap\n29:48 - part 2\n39:13 - rstest\n42:00 - folds", "Day 01 - Advent of Code 2025", "https://www.youtube.com/watch?v=kHnuJyl3czA", "kHnuJyl3czA", 38, 2682, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120100_Day 01 - Advent of Code 2025.mp4", false, ~U[2025-12-01 12:31:08Z]] 20:19:55.941 [debug] QUERY OK source="sources" db=0.1ms idle=59.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:19:55.942 [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] 20:19:55.942 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1668546] 20:19:55.942 [debug] Current batch of media processed. Will check again in 1000ms 20:19:56.943 [debug] Current batch of media processed. Will check again in 1000ms 20:19:57.945 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Changes are coming to Rust Adventure!\n\nWorkshop development now happens live on YouTube, so you can join in, ask questions and have more of a say in new workshops! A new set of Rust Language-specific (as opposed to domain driven, like games) content is under development, with beginner, intermediate and advanced sections.\n\nYou can get this entire video's content as a written, code-highlighted PDF over on the Rust Adventure website, with HTML coming soon.\n\nWhat is Rust Adventure?\n\nRust Adventure is an ever-growing collection of courses designed to help you put Rust into production through real-world projects.\n\nDiscord: https://discord.gg/zxsWUhu6cu\nWebsite: https://www.rustadventure.dev/\n\n00:00 - A Quick Start to Rust\n00:25 - The Rust Playground\n00:38 - Rustup\n01:35 - cargo\n02:25 - Rust Analyzer\n03:06 - Initialize a new Rust package\n05:20 - Rust is an Expression-based Language\n05:50 - Ownership\n07:32 - Cloning\n07:45 - moving\n08:20 - references\n09:09 - deref coercion\n12:17 - copy semantics\n12:41 - data structures and primitives\n14:23 - arrays and tuples\n15:18 - structs and enums\n17:05 - impl blocks\n18:30 - Recoverable and Unrecoverable Errors\n19:37 - Option and Result\n21:51 - anyhow\n23:29 - Defining Errors\n24:51 - Iterators\n27:26 - Parallel Iterators with Rayon\n27:47 - Testing\n28:35 - documentation\n29:34 - Examples", "duration" => 1830, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e110100_A Quick Start to Rust Lang.mp4", "id" => "fTXtdbt1PFA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fTXtdbt1PFA", "playlist_index" => 15, "timestamp" => 1761996643, "title" => "A Quick Start to Rust Lang", "upload_date" => "20251101"} 20:19:57.946 [debug] QUERY OK source="sources" db=0.3ms idle=599.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:57.946 [debug] QUERY OK source="sources" db=0.1ms idle=599.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:57.947 [debug] QUERY OK source="media_items" db=0.9ms idle=600.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-01 11:30:43Z], 38] 20:19:57.952 [debug] QUERY OK source="media_items" db=5.0ms idle=601.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Changes are coming to Rust Adventure!\n\nWorkshop development now happens live on YouTube, so you can join in, ask questions and have more of a say in new workshops! A new set of Rust Language-specific (as opposed to domain driven, like games) content is under development, with beginner, intermediate and advanced sections.\n\nYou can get this entire video's content as a written, code-highlighted PDF over on the Rust Adventure website, with HTML coming soon.\n\nWhat is Rust Adventure?\n\nRust Adventure is an ever-growing collection of courses designed to help you put Rust into production through real-world projects.\n\nDiscord: https://discord.gg/zxsWUhu6cu\nWebsite: https://www.rustadventure.dev/\n\n00:00 - A Quick Start to Rust\n00:25 - The Rust Playground\n00:38 - Rustup\n01:35 - cargo\n02:25 - Rust Analyzer\n03:06 - Initialize a new Rust package\n05:20 - Rust is an Expression-based Language\n05:50 - Ownership\n07:32 - Cloning\n07:45 - moving\n08:20 - references\n09:09 - deref coercion\n12:17 - copy semantics\n12:41 - data structures and primitives\n14:23 - arrays and tuples\n15:18 - structs and enums\n17:05 - impl blocks\n18:30 - Recoverable and Unrecoverable Errors\n19:37 - Option and Result\n21:51 - anyhow\n23:29 - Defining Errors\n24:51 - Iterators\n27:26 - Parallel Iterators with Rayon\n27:47 - Testing\n28:35 - documentation\n29:34 - Examples", "A Quick Start to Rust Lang", "9a9556ab-025a-4efe-852f-6a7fa79ec271", "https://www.youtube.com/watch?v=fTXtdbt1PFA", false, "fTXtdbt1PFA", 38, [], 1830, false, 15, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e110100_A Quick Start to Rust Lang.mp4", false, false, 98, ~U[2025-11-01 11:30:43Z], ~U[2026-01-01 02:19:57Z], ~U[2026-01-01 02:19:57Z], "Changes are coming to Rust Adventure!\n\nWorkshop development now happens live on YouTube, so you can join in, ask questions and have more of a say in new workshops! A new set of Rust Language-specific (as opposed to domain driven, like games) content is under development, with beginner, intermediate and advanced sections.\n\nYou can get this entire video's content as a written, code-highlighted PDF over on the Rust Adventure website, with HTML coming soon.\n\nWhat is Rust Adventure?\n\nRust Adventure is an ever-growing collection of courses designed to help you put Rust into production through real-world projects.\n\nDiscord: https://discord.gg/zxsWUhu6cu\nWebsite: https://www.rustadventure.dev/\n\n00:00 - A Quick Start to Rust\n00:25 - The Rust Playground\n00:38 - Rustup\n01:35 - cargo\n02:25 - Rust Analyzer\n03:06 - Initialize a new Rust package\n05:20 - Rust is an Expression-based Language\n05:50 - Ownership\n07:32 - Cloning\n07:45 - moving\n08:20 - references\n09:09 - deref coercion\n12:17 - copy semantics\n12:41 - data structures and primitives\n14:23 - arrays and tuples\n15:18 - structs and enums\n17:05 - impl blocks\n18:30 - Recoverable and Unrecoverable Errors\n19:37 - Option and Result\n21:51 - anyhow\n23:29 - Defining Errors\n24:51 - Iterators\n27:26 - Parallel Iterators with Rayon\n27:47 - Testing\n28:35 - documentation\n29:34 - Examples", "A Quick Start to Rust Lang", "https://www.youtube.com/watch?v=fTXtdbt1PFA", "fTXtdbt1PFA", 38, 1830, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e110100_A Quick Start to Rust Lang.mp4", false, ~U[2025-11-01 11:30:43Z]] 20:19:57.953 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:57.953 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:19:57.953 [debug] QUERY OK source="media_items" db=0.1ms idle=7.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1431713] 20:19:57.953 [debug] Current batch of media processed. Will check again in 1000ms 20:19:58.954 [debug] Current batch of media processed. Will check again in 1000ms 20:19:59.956 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://thisweekinbevy.com/issue/2025-10-20-avian-04-easier-profiling-and-logging-improvements\n\nThis week in Bevy we see a number of tests have been added to the asset processing system to detail the current behavior of actions like loading sub-assets in edge cases. While working groups like Async and Better Audio are making progress as usual.\n\nWhile in the ecosystem, Avian has moved to a GitHub organization AvianPhysics/avian and moved to take on workflows that are similar to Bevy's when it comes to triage and migration notes.\n\nThis is particularly interesting because Avian, which sees 0.4's release this week, has some of the most comprehensive release notes of any ecosystem crate, making them comparable to Bevy's own release notes.\n\n\n00:00 - Avian 0.4, Easier Profiling, and Logging improvements\n00:37 - Fix Intel iGPU Rendering\n00:57 - Solari indirect specular\n01:09 - Pretty Component Logging\n01:49 - Primitive Demos\n02:08 - Tracy\n02:59 - pan-cam\n03:16 - Render Assets Diagnostics\n03:47 - Tilemap design\n03:55 - Lens Distortion\n04:08 - bevy_steam_audio footsteps\n04:26 - In-game Runnable Programs\n04:35 - Ring World\n04:48 - Bevy in Python\n05:02 - Discovering bevy_hanabi\n05:15 - Eternal\n05:28 - bevy_experimental_editor\n05:45 - bevy_steam_audio sneak peek\n06:08 - Directional Navigation\n06:15 - Beat-em-up\n06:26 - Lost in the Woods\n06:43 - 2d Visibility Mesh\n07:01 - Portal/Half-Life inspired puzzle FPS\n07:16 - Exofactory Demo\n07:24 - bevy_pointcloud progress\n07:36 - MMORPG server emulator\n07:47 - bevy_rand v0.12.1\n08:11 - meta_merge\n08:18 - Lightyear 0.25\n08:46 - Avian Physics 0.4\n09:31 - glam_matrix_extras 0.1.0\n09:55 - bevy_ui_carousel\n10:07 - Substance Designer and KTX2", "duration" => 660, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e102000_Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy.mp4", "id" => "v52f-1HAUGg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=v52f-1HAUGg", "playlist_index" => 16, "timestamp" => 1760959857, "title" => "Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy", "upload_date" => "20251020"} 20:19:59.957 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=610.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:19:59.957 [debug] QUERY OK source="sources" db=0.1ms idle=610.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:19:59.958 [debug] QUERY OK source="media_items" db=0.9ms idle=610.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-20 11:30:57Z], 38] 20:19:59.959 [debug] QUERY OK source="media_items" db=1.0ms idle=612.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://thisweekinbevy.com/issue/2025-10-20-avian-04-easier-profiling-and-logging-improvements\n\nThis week in Bevy we see a number of tests have been added to the asset processing system to detail the current behavior of actions like loading sub-assets in edge cases. While working groups like Async and Better Audio are making progress as usual.\n\nWhile in the ecosystem, Avian has moved to a GitHub organization AvianPhysics/avian and moved to take on workflows that are similar to Bevy's when it comes to triage and migration notes.\n\nThis is particularly interesting because Avian, which sees 0.4's release this week, has some of the most comprehensive release notes of any ecosystem crate, making them comparable to Bevy's own release notes.\n\n\n00:00 - Avian 0.4, Easier Profiling, and Logging improvements\n00:37 - Fix Intel iGPU Rendering\n00:57 - Solari indirect specular\n01:09 - Pretty Component Logging\n01:49 - Primitive Demos\n02:08 - Tracy\n02:59 - pan-cam\n03:16 - Render Assets Diagnostics\n03:47 - Tilemap design\n03:55 - Lens Distortion\n04:08 - bevy_steam_audio footsteps\n04:26 - In-game Runnable Programs\n04:35 - Ring World\n04:48 - Bevy in Python\n05:02 - Discovering bevy_hanabi\n05:15 - Eternal\n05:28 - bevy_experimental_editor\n05:45 - bevy_steam_audio sneak peek\n06:08 - Directional Navigation\n06:15 - Beat-em-up\n06:26 - Lost in the Woods\n06:43 - 2d Visibility Mesh\n07:01 - Portal/Half-Life inspired puzzle FPS\n07:16 - Exofactory Demo\n07:24 - bevy_pointcloud progress\n07:36 - MMORPG server emulator\n07:47 - bevy_rand v0.12.1\n08:11 - meta_merge\n08:18 - Lightyear 0.25\n08:46 - Avian Physics 0.4\n09:31 - glam_matrix_extras 0.1.0\n09:55 - bevy_ui_carousel\n10:07 - Substance Designer and KTX2", "Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy", "64f5207e-0a33-4694-89da-32342afc0bb0", "https://www.youtube.com/watch?v=v52f-1HAUGg", false, "v52f-1HAUGg", 38, [], 660, false, 16, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e102000_Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy.mp4", false, false, 98, ~U[2025-10-20 11:30:57Z], ~U[2026-01-01 02:19:59Z], ~U[2026-01-01 02:19:59Z], "https://thisweekinbevy.com/issue/2025-10-20-avian-04-easier-profiling-and-logging-improvements\n\nThis week in Bevy we see a number of tests have been added to the asset processing system to detail the current behavior of actions like loading sub-assets in edge cases. While working groups like Async and Better Audio are making progress as usual.\n\nWhile in the ecosystem, Avian has moved to a GitHub organization AvianPhysics/avian and moved to take on workflows that are similar to Bevy's when it comes to triage and migration notes.\n\nThis is particularly interesting because Avian, which sees 0.4's release this week, has some of the most comprehensive release notes of any ecosystem crate, making them comparable to Bevy's own release notes.\n\n\n00:00 - Avian 0.4, Easier Profiling, and Logging improvements\n00:37 - Fix Intel iGPU Rendering\n00:57 - Solari indirect specular\n01:09 - Pretty Component Logging\n01:49 - Primitive Demos\n02:08 - Tracy\n02:59 - pan-cam\n03:16 - Render Assets Diagnostics\n03:47 - Tilemap design\n03:55 - Lens Distortion\n04:08 - bevy_steam_audio footsteps\n04:26 - In-game Runnable Programs\n04:35 - Ring World\n04:48 - Bevy in Python\n05:02 - Discovering bevy_hanabi\n05:15 - Eternal\n05:28 - bevy_experimental_editor\n05:45 - bevy_steam_audio sneak peek\n06:08 - Directional Navigation\n06:15 - Beat-em-up\n06:26 - Lost in the Woods\n06:43 - 2d Visibility Mesh\n07:01 - Portal/Half-Life inspired puzzle FPS\n07:16 - Exofactory Demo\n07:24 - bevy_pointcloud progress\n07:36 - MMORPG server emulator\n07:47 - bevy_rand v0.12.1\n08:11 - meta_merge\n08:18 - Lightyear 0.25\n08:46 - Avian Physics 0.4\n09:31 - glam_matrix_extras 0.1.0\n09:55 - bevy_ui_carousel\n10:07 - Substance Designer and KTX2", "Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy", "https://www.youtube.com/watch?v=v52f-1HAUGg", "v52f-1HAUGg", 38, 660, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e102000_Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy.mp4", false, ~U[2025-10-20 11:30:57Z]] 20:19:59.960 [debug] QUERY OK source="sources" db=0.1ms idle=72.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:19:59.960 [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] 20:19:59.960 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1338631] 20:19:59.960 [debug] Current batch of media processed. Will check again in 1000ms 20:20:00.904 [info] {"source":"oban","duration":838,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:20:00.961 [debug] Current batch of media processed. Will check again in 1000ms 20:20:01.962 [debug] Current batch of media processed. Will check again in 1000ms 20:20:02.964 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "https://thisweekinbevy.com/issue/2025-10-13-exofactory-demo-cargo-feature-collections-and-2d-experiments\n\nThe Bevy 0.18 development cycle has kicked into full swing while many ecosystem crates are releasing their 0.17 versions. As usual, we'll leave out crates from the crates section that are mainly updates to 0.17 without major changes.\n\nWe also see some Ludum Dare entries this week, in addition to Exofactory releasing a demo for Steam Next Fest.\n00:00 - Exofactory Demo, Cargo Feature Collections, and 2d experiments\n00:20 - Cargo Feature Collections\n01:11 - Solari\n01:22 - Aabb gizmos\n01:39 - Ring Primitive\n02:12 - bevy_camera_controller\n02:45 - City Builder Editor\n02:55 - fields of Aaru: Lighting\n03:17 - WIP Ragdoll for bevy_animation_graph\n03:29 - To Build a Home: Overworld\n03:41 - 2d experiments\n03:53 - leptos-bevy-canvas state sync\n04:03 - 2d Raytraced Lighting\n04:16 - Poker Slice Adventures\n04:27 - 2d Pixel Art Procedural Generation\n04:39 - Implovisation: Ludum Dare\n04:46 - Asteroids 3d\n04:52 - Wild Spikes: bevy_map_scatter\n05:04 - Exofactory Demo\n05:13 - Mission Ares: Ludum Dare\n05:22 - Eternal\n05:33 - bevy_lit 0.8\n05:55 - beet_flow 0.0.7\n06:19 - Dependency Injection like Bevy Engine from Scratch\n06:36 - Bevy Rust Game Development Chapter 2", "duration" => 414, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e101400_Exofactory Demo, Cargo Feature Collections, and 2d experiments.mp4", "id" => "fWgc9CNP8TQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fWgc9CNP8TQ", "playlist_index" => 17, "timestamp" => 1760445249, "title" => "Exofactory Demo, Cargo Feature Collections, and 2d experiments", "upload_date" => "20251014"} 20:20:02.965 [debug] QUERY OK source="sources" db=0.2ms idle=1618.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:20:02.965 [debug] QUERY OK source="sources" db=0.1ms idle=1618.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:20:02.966 [debug] QUERY OK source="media_items" db=0.8ms idle=1075.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-14 12:34:09Z], 38] 20:20:02.967 [debug] QUERY OK source="media_items" db=0.9ms idle=619.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://thisweekinbevy.com/issue/2025-10-13-exofactory-demo-cargo-feature-collections-and-2d-experiments\n\nThe Bevy 0.18 development cycle has kicked into full swing while many ecosystem crates are releasing their 0.17 versions. As usual, we'll leave out crates from the crates section that are mainly updates to 0.17 without major changes.\n\nWe also see some Ludum Dare entries this week, in addition to Exofactory releasing a demo for Steam Next Fest.\n00:00 - Exofactory Demo, Cargo Feature Collections, and 2d experiments\n00:20 - Cargo Feature Collections\n01:11 - Solari\n01:22 - Aabb gizmos\n01:39 - Ring Primitive\n02:12 - bevy_camera_controller\n02:45 - City Builder Editor\n02:55 - fields of Aaru: Lighting\n03:17 - WIP Ragdoll for bevy_animation_graph\n03:29 - To Build a Home: Overworld\n03:41 - 2d experiments\n03:53 - leptos-bevy-canvas state sync\n04:03 - 2d Raytraced Lighting\n04:16 - Poker Slice Adventures\n04:27 - 2d Pixel Art Procedural Generation\n04:39 - Implovisation: Ludum Dare\n04:46 - Asteroids 3d\n04:52 - Wild Spikes: bevy_map_scatter\n05:04 - Exofactory Demo\n05:13 - Mission Ares: Ludum Dare\n05:22 - Eternal\n05:33 - bevy_lit 0.8\n05:55 - beet_flow 0.0.7\n06:19 - Dependency Injection like Bevy Engine from Scratch\n06:36 - Bevy Rust Game Development Chapter 2", "Exofactory Demo, Cargo Feature Collections, and 2d experiments", "63e8bb47-92bb-47c8-8404-337d31f18f9f", "https://www.youtube.com/watch?v=fWgc9CNP8TQ", false, "fWgc9CNP8TQ", 38, [], 414, false, 17, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e101400_Exofactory Demo, Cargo Feature Collections, and 2d experiments.mp4", false, false, 98, ~U[2025-10-14 12:34:09Z], ~U[2026-01-01 02:20:02Z], ~U[2026-01-01 02:20:02Z], "https://thisweekinbevy.com/issue/2025-10-13-exofactory-demo-cargo-feature-collections-and-2d-experiments\n\nThe Bevy 0.18 development cycle has kicked into full swing while many ecosystem crates are releasing their 0.17 versions. As usual, we'll leave out crates from the crates section that are mainly updates to 0.17 without major changes.\n\nWe also see some Ludum Dare entries this week, in addition to Exofactory releasing a demo for Steam Next Fest.\n00:00 - Exofactory Demo, Cargo Feature Collections, and 2d experiments\n00:20 - Cargo Feature Collections\n01:11 - Solari\n01:22 - Aabb gizmos\n01:39 - Ring Primitive\n02:12 - bevy_camera_controller\n02:45 - City Builder Editor\n02:55 - fields of Aaru: Lighting\n03:17 - WIP Ragdoll for bevy_animation_graph\n03:29 - To Build a Home: Overworld\n03:41 - 2d experiments\n03:53 - leptos-bevy-canvas state sync\n04:03 - 2d Raytraced Lighting\n04:16 - Poker Slice Adventures\n04:27 - 2d Pixel Art Procedural Generation\n04:39 - Implovisation: Ludum Dare\n04:46 - Asteroids 3d\n04:52 - Wild Spikes: bevy_map_scatter\n05:04 - Exofactory Demo\n05:13 - Mission Ares: Ludum Dare\n05:22 - Eternal\n05:33 - bevy_lit 0.8\n05:55 - beet_flow 0.0.7\n06:19 - Dependency Injection like Bevy Engine from Scratch\n06:36 - Bevy Rust Game Development Chapter 2", "Exofactory Demo, Cargo Feature Collections, and 2d experiments", "https://www.youtube.com/watch?v=fWgc9CNP8TQ", "fWgc9CNP8TQ", 38, 414, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e101400_Exofactory Demo, Cargo Feature Collections, and 2d experiments.mp4", false, ~U[2025-10-14 12:34:09Z]] 20:20:02.967 [debug] QUERY OK source="sources" db=0.1ms idle=75.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:20:02.968 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:20:02.968 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1293434] 20:20:02.968 [debug] Current batch of media processed. Will check again in 1000ms 20:20:03.969 [debug] Current batch of media processed. Will check again in 1000ms 20:20:04.971 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "With 0.17's release out we're into 0.18 development! Kicking off the development cycle with two new working groups focused on ergonomics:\n\nfont ergonomics\nAsync ECS ergonomics\nAs usual, many crates are bumping releases for 0.17, so we'll only explicitly be mentioning the ones that are new or have significant changes beyond the 0.17 compatibility release in the crates section this week.\n\n\n00:00 - Volumetric Clouds, Pointclouds, and Zoned Audio\n00:26 - Easy Screenshot Plugin\n00:46 - Remove Systems from Schedule\n01:05 - ClearColor Solari\n01:11 - AnimationTarget split\n01:56 - Enable prepass and shadows\n02:18 - Rusty Puzzles\n02:30 - Volumetric Clouds\n02:37 - Netcode\n02:47 - Custom Level Editor\n03:10 - Fields of Aaru\n03:19 - Egui to Bevy UI\n03:30 - Fun with pointclouds\n03:38 - Hot Patching Experiments\n03:47 - Space Ship Shield\n03:52 - map_scatter integration\n04:03 - Fun with voronoi_mosaic\n04:09 - Stellar Power\n04:14 - Mercator Release Video\n04:22 - Crafting System\n04:30 - Egui to Bevy UI\n04:54 - Potree pointclouds\n05:03 - Zone Audio\n05:32 - bevy_window_as_ui_root\n05:44 - uiactivity_ios_rs\n05:53 - soft_ratatui 0.1\n06:13 - Hooks and Observers in Bevy 0.17\n06:27 - Animated light textures\n06:37 - Multithreading Games in Rust", "duration" => 417, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100800_Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy.mp4", "id" => "_99ZzJ7EYg0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_99ZzJ7EYg0", "playlist_index" => 18, "timestamp" => 1759923731, "title" => "Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy", "upload_date" => "20251008"} 20:20:04.972 [debug] QUERY OK source="sources" db=0.1ms idle=625.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:20:04.972 [debug] QUERY OK source="sources" db=0.1ms idle=625.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:20:04.973 [debug] QUERY OK source="media_items" db=0.8ms idle=626.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-08 11:42:11Z], 38] 20:20:04.974 [debug] QUERY OK source="media_items" db=0.7ms idle=627.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["With 0.17's release out we're into 0.18 development! Kicking off the development cycle with two new working groups focused on ergonomics:\n\nfont ergonomics\nAsync ECS ergonomics\nAs usual, many crates are bumping releases for 0.17, so we'll only explicitly be mentioning the ones that are new or have significant changes beyond the 0.17 compatibility release in the crates section this week.\n\n\n00:00 - Volumetric Clouds, Pointclouds, and Zoned Audio\n00:26 - Easy Screenshot Plugin\n00:46 - Remove Systems from Schedule\n01:05 - ClearColor Solari\n01:11 - AnimationTarget split\n01:56 - Enable prepass and shadows\n02:18 - Rusty Puzzles\n02:30 - Volumetric Clouds\n02:37 - Netcode\n02:47 - Custom Level Editor\n03:10 - Fields of Aaru\n03:19 - Egui to Bevy UI\n03:30 - Fun with pointclouds\n03:38 - Hot Patching Experiments\n03:47 - Space Ship Shield\n03:52 - map_scatter integration\n04:03 - Fun with voronoi_mosaic\n04:09 - Stellar Power\n04:14 - Mercator Release Video\n04:22 - Crafting System\n04:30 - Egui to Bevy UI\n04:54 - Potree pointclouds\n05:03 - Zone Audio\n05:32 - bevy_window_as_ui_root\n05:44 - uiactivity_ios_rs\n05:53 - soft_ratatui 0.1\n06:13 - Hooks and Observers in Bevy 0.17\n06:27 - Animated light textures\n06:37 - Multithreading Games in Rust", "Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy", "fad17854-5e5c-4139-96b7-6879a54eb0b3", "https://www.youtube.com/watch?v=_99ZzJ7EYg0", false, "_99ZzJ7EYg0", 38, [], 417, false, 18, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100800_Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy.mp4", false, false, 98, ~U[2025-10-08 11:42:11Z], ~U[2026-01-01 02:20:04Z], ~U[2026-01-01 02:20:04Z], "With 0.17's release out we're into 0.18 development! Kicking off the development cycle with two new working groups focused on ergonomics:\n\nfont ergonomics\nAsync ECS ergonomics\nAs usual, many crates are bumping releases for 0.17, so we'll only explicitly be mentioning the ones that are new or have significant changes beyond the 0.17 compatibility release in the crates section this week.\n\n\n00:00 - Volumetric Clouds, Pointclouds, and Zoned Audio\n00:26 - Easy Screenshot Plugin\n00:46 - Remove Systems from Schedule\n01:05 - ClearColor Solari\n01:11 - AnimationTarget split\n01:56 - Enable prepass and shadows\n02:18 - Rusty Puzzles\n02:30 - Volumetric Clouds\n02:37 - Netcode\n02:47 - Custom Level Editor\n03:10 - Fields of Aaru\n03:19 - Egui to Bevy UI\n03:30 - Fun with pointclouds\n03:38 - Hot Patching Experiments\n03:47 - Space Ship Shield\n03:52 - map_scatter integration\n04:03 - Fun with voronoi_mosaic\n04:09 - Stellar Power\n04:14 - Mercator Release Video\n04:22 - Crafting System\n04:30 - Egui to Bevy UI\n04:54 - Potree pointclouds\n05:03 - Zone Audio\n05:32 - bevy_window_as_ui_root\n05:44 - uiactivity_ios_rs\n05:53 - soft_ratatui 0.1\n06:13 - Hooks and Observers in Bevy 0.17\n06:27 - Animated light textures\n06:37 - Multithreading Games in Rust", "Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy", "https://www.youtube.com/watch?v=_99ZzJ7EYg0", "_99ZzJ7EYg0", 38, 417, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100800_Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy.mp4", false, ~U[2025-10-08 11:42:11Z]] 20:20:04.974 [debug] QUERY OK source="sources" db=0.1ms idle=80.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:04.975 [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] 20:20:04.975 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1247273] 20:20:04.975 [debug] Current batch of media processed. Will check again in 1000ms 20:20:05.976 [debug] Current batch of media processed. Will check again in 1000ms 20:20:06.978 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "code sample: https://github.com/rust-adventure/bevy-examples/tree/d04354b5f9fadcc76f699ce80bf1e7c190e6ec3c/examples/dappled-lighting", "duration" => 673, "filename" => "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100200_Animated Light Textures in Bevy 0.17.mp4", "id" => "H4ysDezt8Vo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=H4ysDezt8Vo", "playlist_index" => 19, "timestamp" => 1759404622, "title" => "Animated Light Textures in Bevy 0.17", "upload_date" => "20251002"} 20:20:06.978 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=631.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:20:06.978 [debug] QUERY OK source="sources" db=0.1ms idle=632.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:20:06.979 [debug] QUERY OK source="media_items" db=0.8ms idle=632.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 11:30:22Z], 38] 20:20:06.980 [debug] QUERY OK source="media_items" db=0.4ms idle=633.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["code sample: https://github.com/rust-adventure/bevy-examples/tree/d04354b5f9fadcc76f699ce80bf1e7c190e6ec3c/examples/dappled-lighting", "Animated Light Textures in Bevy 0.17", "5cb18696-1b90-480a-906e-f26ef9c58bee", "https://www.youtube.com/watch?v=H4ysDezt8Vo", false, "H4ysDezt8Vo", 38, [], 673, false, 19, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100200_Animated Light Textures in Bevy 0.17.mp4", false, false, 98, ~U[2025-10-02 11:30:22Z], ~U[2026-01-01 02:20:06Z], ~U[2026-01-01 02:20:06Z], "code sample: https://github.com/rust-adventure/bevy-examples/tree/d04354b5f9fadcc76f699ce80bf1e7c190e6ec3c/examples/dappled-lighting", "Animated Light Textures in Bevy 0.17", "https://www.youtube.com/watch?v=H4ysDezt8Vo", "H4ysDezt8Vo", 38, 673, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100200_Animated Light Textures in Bevy 0.17.mp4", false, ~U[2025-10-02 11:30:22Z]] 20:20:06.980 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [38] 20:20:06.981 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:20:06.981 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1200659] 20:20:06.981 [debug] Current batch of media processed. Will check again in 1000ms 20:20:07.982 [debug] Current batch of media processed. Will check again in 1000ms 20:20:08.329 [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/d4/9c/d49c51febd9baac92270eea20fa8a078362eb7291a001fec523ef762a7e5df3d.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/7a/39/7a39af6e387b592d98a70f476110b074b5bcc16256128e334a41eaa275aa20ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:20:08.330 [debug] Gracefully stopping file follower 20:20:08.330 [debug] QUERY OK source="sources" db=0.3ms idle=1349.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:20:08.331 [debug] QUERY OK source="sources" db=0.0ms idle=1350.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.332 [debug] QUERY OK source="media_items" db=0.8ms idle=1350.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-24 12:31:13Z], 38] 20:20:08.333 [debug] QUERY OK source="media_items" db=0.7ms idle=1350.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "91956e69-0e7c-42e6-b368-ca57eab04151", "https://www.youtube.com/watch?v=jqHh06r2-Wc", false, "jqHh06r2-Wc", 38, [], 401, false, 1, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, false, 98, ~U[2025-12-24 12:31:13Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=jqHh06r2-Wc", "jqHh06r2-Wc", 38, 401, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e122400_Shift-O, SoupRune, and Volumetric Clouds - This Week in Bevy.mp4", false, ~U[2025-12-24 12:31:13Z]] 20:20:08.333 [debug] QUERY OK source="sources" db=0.1ms idle=434.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:20:08.334 [debug] QUERY OK source="media_items" db=0.8ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 12:30:00Z], 38] 20:20:08.335 [debug] QUERY OK source="media_items" db=0.7ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "0eb4053c-ba2e-45f7-8149-0d808991ac6a", "https://www.youtube.com/watch?v=g8t-LRr3M2A", false, "g8t-LRr3M2A", 38, [], 536, false, 2, "/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, 98, ~U[2025-12-18 12:30:00Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=g8t-LRr3M2A", "g8t-LRr3M2A", 38, 536, false, "/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, ~U[2025-12-18 12:30:00Z]] 20:20:08.335 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.336 [debug] QUERY OK source="media_items" db=0.7ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 12:30:40Z], 38] 20:20:08.337 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "f5d30bd6-0f11-49af-9702-4edf67b0a7dd", "https://www.youtube.com/watch?v=QX7w2oJzX9Y", false, "QX7w2oJzX9Y", 38, [], 1331, false, 3, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-12 12:30:40Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=QX7w2oJzX9Y", "QX7w2oJzX9Y", 38, 1331, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121200_Day 12 - Advent of Code 2025.mp4", false, ~U[2025-12-12 12:30:40Z]] 20:20:08.337 [debug] QUERY OK source="sources" db=0.2ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.338 [debug] QUERY OK source="media_items" db=0.8ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 12:31:07Z], 38] 20:20:08.339 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "53b28027-e3fd-4220-a0f9-3f38f4da502c", "https://www.youtube.com/watch?v=gYc9yptZh3Q", false, "gYc9yptZh3Q", 38, [], 1605, false, 4, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-11 12:31:07Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=gYc9yptZh3Q", "gYc9yptZh3Q", 38, 1605, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121100_Day 11 - Advent of Code 2025.mp4", false, ~U[2025-12-11 12:31:07Z]] 20:20:08.339 [debug] QUERY OK source="sources" db=0.2ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.340 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 12:30:41Z], 38] 20:20:08.341 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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)", "a701a9c1-7367-4398-8337-6c3f9375db0f", "https://www.youtube.com/watch?v=P_6IwxCTHR8", false, "P_6IwxCTHR8", 38, [], 1971, false, 5, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, false, 98, ~U[2025-12-10 12:30:41Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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)", "https://www.youtube.com/watch?v=P_6IwxCTHR8", "P_6IwxCTHR8", 38, 1971, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e121000_Day 10 - Advent of Code 2025 (No Part 2).mp4", false, ~U[2025-12-10 12:30:41Z]] 20:20:08.341 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.342 [debug] QUERY OK source="media_items" db=0.6ms idle=2.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 12:30:42Z], 38] 20:20:08.342 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "5a36eb7f-c2da-47e1-ac44-242de3c883e6", "https://www.youtube.com/watch?v=RyLuE5xFLxw", false, "RyLuE5xFLxw", 38, [], 1776, false, 6, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-09 12:30:42Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=RyLuE5xFLxw", "RyLuE5xFLxw", 38, 1776, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120900_Day 09 - Advent of Code 2025.mp4", false, ~U[2025-12-09 12:30:42Z]] 20:20:08.343 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.343 [debug] QUERY OK source="media_items" db=0.6ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 13:12:46Z], 38] 20:20:08.344 [debug] QUERY OK source="media_items" db=0.4ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "e68d9d4a-7440-44c2-a9e0-29807e7c167d", "https://www.youtube.com/watch?v=auLtaZFB89Q", false, "auLtaZFB89Q", 38, [], 2159, false, 7, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-08 13:12:46Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=auLtaZFB89Q", "auLtaZFB89Q", 38, 2159, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120800_Day 08 - Advent of Code 2025.mp4", false, ~U[2025-12-08 13:12:46Z]] 20:20:08.344 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.345 [debug] QUERY OK source="media_items" db=0.7ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 12:30:45Z], 38] 20:20:08.346 [debug] QUERY OK source="media_items" db=0.4ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "ea77183b-2798-4a41-8b09-a9997c794048", "https://www.youtube.com/watch?v=WydCrKP1tOk", false, "WydCrKP1tOk", 38, [], 1695, false, 8, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-07 12:30:45Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=WydCrKP1tOk", "WydCrKP1tOk", 38, 1695, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120700_Day 07 - Advent of Code 2025.mp4", false, ~U[2025-12-07 12:30:45Z]] 20:20:08.346 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.347 [debug] QUERY OK source="media_items" db=0.7ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-06 12:31:32Z], 38] 20:20:08.362 [debug] QUERY OK source="media_items" db=15.0ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "68c43f79-85e5-4c5e-98fc-d5c62c9f1be8", "https://www.youtube.com/watch?v=wtkYs63qE_8", false, "wtkYs63qE_8", 38, [], 2631, false, 9, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-06 12:31:32Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=wtkYs63qE_8", "wtkYs63qE_8", 38, 2631, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120600_Day 06 - Advent of Code 2025.mp4", false, ~U[2025-12-06 12:31:32Z]] 20:20:08.363 [debug] QUERY OK source="sources" db=0.4ms idle=17.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:20:08.364 [debug] QUERY OK source="media_items" db=0.7ms idle=17.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-05 12:30:13Z], 38] 20:20:08.369 [debug] QUERY OK source="media_items" db=4.2ms idle=18.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "f29eb661-9d69-424e-b1b0-8056199d8652", "https://www.youtube.com/watch?v=9VFox4Z-Apc", false, "9VFox4Z-Apc", 38, [], 1997, false, 10, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-05 12:30:13Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=9VFox4Z-Apc", "9VFox4Z-Apc", 38, 1997, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120500_Day 05 - Advent of Code 2025.mp4", false, ~U[2025-12-05 12:30:13Z]] 20:20:08.369 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.370 [debug] QUERY OK source="media_items" db=0.7ms 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[2025-12-04 12:30:16Z], 38] 20:20:08.371 [debug] QUERY OK source="media_items" db=0.4ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "1d9f93dd-196f-46aa-889a-dbf8cabbec0c", "https://www.youtube.com/watch?v=6sQcSpcOflI", false, "6sQcSpcOflI", 38, [], 2512, false, 11, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-04 12:30:16Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=6sQcSpcOflI", "6sQcSpcOflI", 38, 2512, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120400_Day 04 - Advent of Code 2025.mp4", false, ~U[2025-12-04 12:30:16Z]] 20:20:08.371 [debug] QUERY OK source="sources" db=0.1ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.372 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-03 12:31:03Z], 38] 20:20:08.373 [debug] QUERY OK source="media_items" db=1.4ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "37031eea-a3a3-4998-b565-205450742b3d", "https://www.youtube.com/watch?v=d28gm-rL_rA", false, "d28gm-rL_rA", 38, [], 1878, false, 12, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-03 12:31:03Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "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", "https://www.youtube.com/watch?v=d28gm-rL_rA", "d28gm-rL_rA", 38, 1878, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120300_Day 03 - Advent of Code 2025.mp4", false, ~U[2025-12-03 12:31:03Z]] 20:20:08.374 [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" = ?) [38] 20:20:08.374 [debug] QUERY OK source="media_items" db=0.6ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-02 12:30:37Z], 38] 20:20:08.375 [debug] QUERY OK source="media_items" db=0.5ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Advent of Code Day 02!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/f2ed674dd26a10a36c1838478bc9e5aa9c18c0ea/2025/rust/day-02/src/part2.rs\n\nhttps://adventofcode.com/2025/day/2\n\n\n00:00 - prep work\n03:02 - day 2 part 1\n06:43 - first test\n15:21 - part 1 recap\n16:37 - part 2\n28:03 - benchmarks with divan", "Day 02 - Advent of Code 2025", "309b0a5a-8de4-43c9-a56b-d3ea3689df8e", "https://www.youtube.com/watch?v=LTT93lHogRM", false, "LTT93lHogRM", 38, [], 1855, false, 13, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120200_Day 02 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-02 12:30:37Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "Advent of Code Day 02!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/blob/f2ed674dd26a10a36c1838478bc9e5aa9c18c0ea/2025/rust/day-02/src/part2.rs\n\nhttps://adventofcode.com/2025/day/2\n\n\n00:00 - prep work\n03:02 - day 2 part 1\n06:43 - first test\n15:21 - part 1 recap\n16:37 - part 2\n28:03 - benchmarks with divan", "Day 02 - Advent of Code 2025", "https://www.youtube.com/watch?v=LTT93lHogRM", "LTT93lHogRM", 38, 1855, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120200_Day 02 - Advent of Code 2025.mp4", false, ~U[2025-12-02 12:30:37Z]] 20:20:08.375 [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" = ?) [38] 20:20:08.376 [debug] QUERY OK source="media_items" db=0.6ms idle=2.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-01 12:31:08Z], 38] 20:20:08.377 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Advent of Code Day 01!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/860e903fa81d85e7f28676923774b50677e311ab/2025/rust/day-01/src\n\nhttps://adventofcode.com/2025/day/1\n\n00:00 - Prep Work\n14:11 - Part 1\n16:20 - first test\n19:22 - enums and nom\n24:38 - check your input!\n26:09 - part 1 recap\n29:48 - part 2\n39:13 - rstest\n42:00 - folds", "Day 01 - Advent of Code 2025", "46484f5e-4cbe-4c94-b068-99161106be89", "https://www.youtube.com/watch?v=kHnuJyl3czA", false, "kHnuJyl3czA", 38, [], 2682, false, 14, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120100_Day 01 - Advent of Code 2025.mp4", false, false, 98, ~U[2025-12-01 12:31:08Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "Advent of Code Day 01!\n\nhttps://github.com/ChristopherBiscardi/advent-of-code/tree/860e903fa81d85e7f28676923774b50677e311ab/2025/rust/day-01/src\n\nhttps://adventofcode.com/2025/day/1\n\n00:00 - Prep Work\n14:11 - Part 1\n16:20 - first test\n19:22 - enums and nom\n24:38 - check your input!\n26:09 - part 1 recap\n29:48 - part 2\n39:13 - rstest\n42:00 - folds", "Day 01 - Advent of Code 2025", "https://www.youtube.com/watch?v=kHnuJyl3czA", "kHnuJyl3czA", 38, 2682, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e120100_Day 01 - Advent of Code 2025.mp4", false, ~U[2025-12-01 12:31:08Z]] 20:20:08.377 [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" = ?) [38] 20:20:08.378 [debug] QUERY OK source="media_items" db=0.6ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-01 11:30:43Z], 38] 20:20:08.379 [debug] QUERY OK source="media_items" db=0.7ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Changes are coming to Rust Adventure!\n\nWorkshop development now happens live on YouTube, so you can join in, ask questions and have more of a say in new workshops! A new set of Rust Language-specific (as opposed to domain driven, like games) content is under development, with beginner, intermediate and advanced sections.\n\nYou can get this entire video's content as a written, code-highlighted PDF over on the Rust Adventure website, with HTML coming soon.\n\nWhat is Rust Adventure?\n\nRust Adventure is an ever-growing collection of courses designed to help you put Rust into production through real-world projects.\n\nDiscord: https://discord.gg/zxsWUhu6cu\nWebsite: https://www.rustadventure.dev/\n\n00:00 - A Quick Start to Rust\n00:25 - The Rust Playground\n00:38 - Rustup\n01:35 - cargo\n02:25 - Rust Analyzer\n03:06 - Initialize a new Rust package\n05:20 - Rust is an Expression-based Language\n05:50 - Ownership\n07:32 - Cloning\n07:45 - moving\n08:20 - references\n09:09 - deref coercion\n12:17 - copy semantics\n12:41 - data structures and primitives\n14:23 - arrays and tuples\n15:18 - structs and enums\n17:05 - impl blocks\n18:30 - Recoverable and Unrecoverable Errors\n19:37 - Option and Result\n21:51 - anyhow\n23:29 - Defining Errors\n24:51 - Iterators\n27:26 - Parallel Iterators with Rayon\n27:47 - Testing\n28:35 - documentation\n29:34 - Examples", "A Quick Start to Rust Lang", "37b4fd15-074f-4bd8-b99c-5f62fb007f6d", "https://www.youtube.com/watch?v=fTXtdbt1PFA", false, "fTXtdbt1PFA", 38, [], 1830, false, 15, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e110100_A Quick Start to Rust Lang.mp4", false, false, 98, ~U[2025-11-01 11:30:43Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "Changes are coming to Rust Adventure!\n\nWorkshop development now happens live on YouTube, so you can join in, ask questions and have more of a say in new workshops! A new set of Rust Language-specific (as opposed to domain driven, like games) content is under development, with beginner, intermediate and advanced sections.\n\nYou can get this entire video's content as a written, code-highlighted PDF over on the Rust Adventure website, with HTML coming soon.\n\nWhat is Rust Adventure?\n\nRust Adventure is an ever-growing collection of courses designed to help you put Rust into production through real-world projects.\n\nDiscord: https://discord.gg/zxsWUhu6cu\nWebsite: https://www.rustadventure.dev/\n\n00:00 - A Quick Start to Rust\n00:25 - The Rust Playground\n00:38 - Rustup\n01:35 - cargo\n02:25 - Rust Analyzer\n03:06 - Initialize a new Rust package\n05:20 - Rust is an Expression-based Language\n05:50 - Ownership\n07:32 - Cloning\n07:45 - moving\n08:20 - references\n09:09 - deref coercion\n12:17 - copy semantics\n12:41 - data structures and primitives\n14:23 - arrays and tuples\n15:18 - structs and enums\n17:05 - impl blocks\n18:30 - Recoverable and Unrecoverable Errors\n19:37 - Option and Result\n21:51 - anyhow\n23:29 - Defining Errors\n24:51 - Iterators\n27:26 - Parallel Iterators with Rayon\n27:47 - Testing\n28:35 - documentation\n29:34 - Examples", "A Quick Start to Rust Lang", "https://www.youtube.com/watch?v=fTXtdbt1PFA", "fTXtdbt1PFA", 38, 1830, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e110100_A Quick Start to Rust Lang.mp4", false, ~U[2025-11-01 11:30:43Z]] 20:20:08.379 [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" = ?) [38] 20:20:08.380 [debug] QUERY OK source="media_items" db=0.6ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-20 11:30:57Z], 38] 20:20:08.381 [debug] QUERY OK source="media_items" db=0.8ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://thisweekinbevy.com/issue/2025-10-20-avian-04-easier-profiling-and-logging-improvements\n\nThis week in Bevy we see a number of tests have been added to the asset processing system to detail the current behavior of actions like loading sub-assets in edge cases. While working groups like Async and Better Audio are making progress as usual.\n\nWhile in the ecosystem, Avian has moved to a GitHub organization AvianPhysics/avian and moved to take on workflows that are similar to Bevy's when it comes to triage and migration notes.\n\nThis is particularly interesting because Avian, which sees 0.4's release this week, has some of the most comprehensive release notes of any ecosystem crate, making them comparable to Bevy's own release notes.\n\n\n00:00 - Avian 0.4, Easier Profiling, and Logging improvements\n00:37 - Fix Intel iGPU Rendering\n00:57 - Solari indirect specular\n01:09 - Pretty Component Logging\n01:49 - Primitive Demos\n02:08 - Tracy\n02:59 - pan-cam\n03:16 - Render Assets Diagnostics\n03:47 - Tilemap design\n03:55 - Lens Distortion\n04:08 - bevy_steam_audio footsteps\n04:26 - In-game Runnable Programs\n04:35 - Ring World\n04:48 - Bevy in Python\n05:02 - Discovering bevy_hanabi\n05:15 - Eternal\n05:28 - bevy_experimental_editor\n05:45 - bevy_steam_audio sneak peek\n06:08 - Directional Navigation\n06:15 - Beat-em-up\n06:26 - Lost in the Woods\n06:43 - 2d Visibility Mesh\n07:01 - Portal/Half-Life inspired puzzle FPS\n07:16 - Exofactory Demo\n07:24 - bevy_pointcloud progress\n07:36 - MMORPG server emulator\n07:47 - bevy_rand v0.12.1\n08:11 - meta_merge\n08:18 - Lightyear 0.25\n08:46 - Avian Physics 0.4\n09:31 - glam_matrix_extras 0.1.0\n09:55 - bevy_ui_carousel\n10:07 - Substance Designer and KTX2", "Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy", "77f3c58a-ea92-4d16-9448-f068ac52bf14", "https://www.youtube.com/watch?v=v52f-1HAUGg", false, "v52f-1HAUGg", 38, [], 660, false, 16, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e102000_Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy.mp4", false, false, 98, ~U[2025-10-20 11:30:57Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "https://thisweekinbevy.com/issue/2025-10-20-avian-04-easier-profiling-and-logging-improvements\n\nThis week in Bevy we see a number of tests have been added to the asset processing system to detail the current behavior of actions like loading sub-assets in edge cases. While working groups like Async and Better Audio are making progress as usual.\n\nWhile in the ecosystem, Avian has moved to a GitHub organization AvianPhysics/avian and moved to take on workflows that are similar to Bevy's when it comes to triage and migration notes.\n\nThis is particularly interesting because Avian, which sees 0.4's release this week, has some of the most comprehensive release notes of any ecosystem crate, making them comparable to Bevy's own release notes.\n\n\n00:00 - Avian 0.4, Easier Profiling, and Logging improvements\n00:37 - Fix Intel iGPU Rendering\n00:57 - Solari indirect specular\n01:09 - Pretty Component Logging\n01:49 - Primitive Demos\n02:08 - Tracy\n02:59 - pan-cam\n03:16 - Render Assets Diagnostics\n03:47 - Tilemap design\n03:55 - Lens Distortion\n04:08 - bevy_steam_audio footsteps\n04:26 - In-game Runnable Programs\n04:35 - Ring World\n04:48 - Bevy in Python\n05:02 - Discovering bevy_hanabi\n05:15 - Eternal\n05:28 - bevy_experimental_editor\n05:45 - bevy_steam_audio sneak peek\n06:08 - Directional Navigation\n06:15 - Beat-em-up\n06:26 - Lost in the Woods\n06:43 - 2d Visibility Mesh\n07:01 - Portal/Half-Life inspired puzzle FPS\n07:16 - Exofactory Demo\n07:24 - bevy_pointcloud progress\n07:36 - MMORPG server emulator\n07:47 - bevy_rand v0.12.1\n08:11 - meta_merge\n08:18 - Lightyear 0.25\n08:46 - Avian Physics 0.4\n09:31 - glam_matrix_extras 0.1.0\n09:55 - bevy_ui_carousel\n10:07 - Substance Designer and KTX2", "Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy", "https://www.youtube.com/watch?v=v52f-1HAUGg", "v52f-1HAUGg", 38, 660, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e102000_Avian 0.4, Easier Profiling, and Logging improvements - This Week in Bevy.mp4", false, ~U[2025-10-20 11:30:57Z]] 20:20:08.381 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.382 [debug] QUERY OK source="media_items" db=0.6ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-14 12:34:09Z], 38] 20:20:08.383 [debug] QUERY OK source="media_items" db=0.7ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["https://thisweekinbevy.com/issue/2025-10-13-exofactory-demo-cargo-feature-collections-and-2d-experiments\n\nThe Bevy 0.18 development cycle has kicked into full swing while many ecosystem crates are releasing their 0.17 versions. As usual, we'll leave out crates from the crates section that are mainly updates to 0.17 without major changes.\n\nWe also see some Ludum Dare entries this week, in addition to Exofactory releasing a demo for Steam Next Fest.\n00:00 - Exofactory Demo, Cargo Feature Collections, and 2d experiments\n00:20 - Cargo Feature Collections\n01:11 - Solari\n01:22 - Aabb gizmos\n01:39 - Ring Primitive\n02:12 - bevy_camera_controller\n02:45 - City Builder Editor\n02:55 - fields of Aaru: Lighting\n03:17 - WIP Ragdoll for bevy_animation_graph\n03:29 - To Build a Home: Overworld\n03:41 - 2d experiments\n03:53 - leptos-bevy-canvas state sync\n04:03 - 2d Raytraced Lighting\n04:16 - Poker Slice Adventures\n04:27 - 2d Pixel Art Procedural Generation\n04:39 - Implovisation: Ludum Dare\n04:46 - Asteroids 3d\n04:52 - Wild Spikes: bevy_map_scatter\n05:04 - Exofactory Demo\n05:13 - Mission Ares: Ludum Dare\n05:22 - Eternal\n05:33 - bevy_lit 0.8\n05:55 - beet_flow 0.0.7\n06:19 - Dependency Injection like Bevy Engine from Scratch\n06:36 - Bevy Rust Game Development Chapter 2", "Exofactory Demo, Cargo Feature Collections, and 2d experiments", "9986f8e3-48ca-4872-82ea-b8579810281b", "https://www.youtube.com/watch?v=fWgc9CNP8TQ", false, "fWgc9CNP8TQ", 38, [], 414, false, 17, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e101400_Exofactory Demo, Cargo Feature Collections, and 2d experiments.mp4", false, false, 98, ~U[2025-10-14 12:34:09Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "https://thisweekinbevy.com/issue/2025-10-13-exofactory-demo-cargo-feature-collections-and-2d-experiments\n\nThe Bevy 0.18 development cycle has kicked into full swing while many ecosystem crates are releasing their 0.17 versions. As usual, we'll leave out crates from the crates section that are mainly updates to 0.17 without major changes.\n\nWe also see some Ludum Dare entries this week, in addition to Exofactory releasing a demo for Steam Next Fest.\n00:00 - Exofactory Demo, Cargo Feature Collections, and 2d experiments\n00:20 - Cargo Feature Collections\n01:11 - Solari\n01:22 - Aabb gizmos\n01:39 - Ring Primitive\n02:12 - bevy_camera_controller\n02:45 - City Builder Editor\n02:55 - fields of Aaru: Lighting\n03:17 - WIP Ragdoll for bevy_animation_graph\n03:29 - To Build a Home: Overworld\n03:41 - 2d experiments\n03:53 - leptos-bevy-canvas state sync\n04:03 - 2d Raytraced Lighting\n04:16 - Poker Slice Adventures\n04:27 - 2d Pixel Art Procedural Generation\n04:39 - Implovisation: Ludum Dare\n04:46 - Asteroids 3d\n04:52 - Wild Spikes: bevy_map_scatter\n05:04 - Exofactory Demo\n05:13 - Mission Ares: Ludum Dare\n05:22 - Eternal\n05:33 - bevy_lit 0.8\n05:55 - beet_flow 0.0.7\n06:19 - Dependency Injection like Bevy Engine from Scratch\n06:36 - Bevy Rust Game Development Chapter 2", "Exofactory Demo, Cargo Feature Collections, and 2d experiments", "https://www.youtube.com/watch?v=fWgc9CNP8TQ", "fWgc9CNP8TQ", 38, 414, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e101400_Exofactory Demo, Cargo Feature Collections, and 2d experiments.mp4", false, ~U[2025-10-14 12:34:09Z]] 20:20:08.383 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.384 [debug] QUERY OK source="media_items" db=0.6ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-08 11:42:11Z], 38] 20:20:08.385 [debug] QUERY OK source="media_items" db=0.7ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["With 0.17's release out we're into 0.18 development! Kicking off the development cycle with two new working groups focused on ergonomics:\n\nfont ergonomics\nAsync ECS ergonomics\nAs usual, many crates are bumping releases for 0.17, so we'll only explicitly be mentioning the ones that are new or have significant changes beyond the 0.17 compatibility release in the crates section this week.\n\n\n00:00 - Volumetric Clouds, Pointclouds, and Zoned Audio\n00:26 - Easy Screenshot Plugin\n00:46 - Remove Systems from Schedule\n01:05 - ClearColor Solari\n01:11 - AnimationTarget split\n01:56 - Enable prepass and shadows\n02:18 - Rusty Puzzles\n02:30 - Volumetric Clouds\n02:37 - Netcode\n02:47 - Custom Level Editor\n03:10 - Fields of Aaru\n03:19 - Egui to Bevy UI\n03:30 - Fun with pointclouds\n03:38 - Hot Patching Experiments\n03:47 - Space Ship Shield\n03:52 - map_scatter integration\n04:03 - Fun with voronoi_mosaic\n04:09 - Stellar Power\n04:14 - Mercator Release Video\n04:22 - Crafting System\n04:30 - Egui to Bevy UI\n04:54 - Potree pointclouds\n05:03 - Zone Audio\n05:32 - bevy_window_as_ui_root\n05:44 - uiactivity_ios_rs\n05:53 - soft_ratatui 0.1\n06:13 - Hooks and Observers in Bevy 0.17\n06:27 - Animated light textures\n06:37 - Multithreading Games in Rust", "Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy", "ca596fbf-fb9c-4e94-a312-19ee5988a7d7", "https://www.youtube.com/watch?v=_99ZzJ7EYg0", false, "_99ZzJ7EYg0", 38, [], 417, false, 18, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100800_Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy.mp4", false, false, 98, ~U[2025-10-08 11:42:11Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "With 0.17's release out we're into 0.18 development! Kicking off the development cycle with two new working groups focused on ergonomics:\n\nfont ergonomics\nAsync ECS ergonomics\nAs usual, many crates are bumping releases for 0.17, so we'll only explicitly be mentioning the ones that are new or have significant changes beyond the 0.17 compatibility release in the crates section this week.\n\n\n00:00 - Volumetric Clouds, Pointclouds, and Zoned Audio\n00:26 - Easy Screenshot Plugin\n00:46 - Remove Systems from Schedule\n01:05 - ClearColor Solari\n01:11 - AnimationTarget split\n01:56 - Enable prepass and shadows\n02:18 - Rusty Puzzles\n02:30 - Volumetric Clouds\n02:37 - Netcode\n02:47 - Custom Level Editor\n03:10 - Fields of Aaru\n03:19 - Egui to Bevy UI\n03:30 - Fun with pointclouds\n03:38 - Hot Patching Experiments\n03:47 - Space Ship Shield\n03:52 - map_scatter integration\n04:03 - Fun with voronoi_mosaic\n04:09 - Stellar Power\n04:14 - Mercator Release Video\n04:22 - Crafting System\n04:30 - Egui to Bevy UI\n04:54 - Potree pointclouds\n05:03 - Zone Audio\n05:32 - bevy_window_as_ui_root\n05:44 - uiactivity_ios_rs\n05:53 - soft_ratatui 0.1\n06:13 - Hooks and Observers in Bevy 0.17\n06:27 - Animated light textures\n06:37 - Multithreading Games in Rust", "Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy", "https://www.youtube.com/watch?v=_99ZzJ7EYg0", "_99ZzJ7EYg0", 38, 417, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100800_Volumetric Clouds, Pointclouds, and Zoned Audio - This Week in Bevy.mp4", false, ~U[2025-10-08 11:42:11Z]] 20:20:08.386 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:20:08.386 [debug] QUERY OK source="media_items" db=0.7ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 11:30:22Z], 38] 20:20:08.387 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["code sample: https://github.com/rust-adventure/bevy-examples/tree/d04354b5f9fadcc76f699ce80bf1e7c190e6ec3c/examples/dappled-lighting", "Animated Light Textures in Bevy 0.17", "2307258f-7ff9-4c71-b85e-13c98b1efd41", "https://www.youtube.com/watch?v=H4ysDezt8Vo", false, "H4ysDezt8Vo", 38, [], 673, false, 19, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100200_Animated Light Textures in Bevy 0.17.mp4", false, false, 98, ~U[2025-10-02 11:30:22Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "code sample: https://github.com/rust-adventure/bevy-examples/tree/d04354b5f9fadcc76f699ce80bf1e7c190e6ec3c/examples/dappled-lighting", "Animated Light Textures in Bevy 0.17", "https://www.youtube.com/watch?v=H4ysDezt8Vo", "H4ysDezt8Vo", 38, 673, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100200_Animated Light Textures in Bevy 0.17.mp4", false, ~U[2025-10-02 11:30:22Z]] 20:20:08.387 [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" = ?) [38] 20:20:08.388 [debug] QUERY OK source="media_items" db=0.6ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-01 11:30:08Z], 38] 20:20:08.389 [debug] QUERY OK source="media_items" db=0.5ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Code examples: https://github.com/rust-adventure/bevy-examples\n\n\n00:00 - introducing hooks\n04:28 - component hook values\n05:38 - observers\n06:58 - hooks vs observer ordering\n09:50 - global and local observers\n11:03 - custom observer events\n13:10 - recursion\n15:27 - event propagation\n17:12 - custom relationship propagation\n18:55 - observers are components\n21:34 - observers in children!", "Hooks and Observers in Bevy 0.17", "f2365409-d16f-4de1-ad5d-501b74a6fb93", "https://www.youtube.com/watch?v=BtwNc_sx1pE", false, "BtwNc_sx1pE", 38, [], 1408, false, 20, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100100_Hooks and Observers in Bevy 0.17.mp4", false, false, 98, ~U[2025-10-01 11:30:08Z], ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], "Code examples: https://github.com/rust-adventure/bevy-examples\n\n\n00:00 - introducing hooks\n04:28 - component hook values\n05:38 - observers\n06:58 - hooks vs observer ordering\n09:50 - global and local observers\n11:03 - custom observer events\n13:10 - recursion\n15:27 - event propagation\n17:12 - custom relationship propagation\n18:55 - observers are components\n21:34 - observers in children!", "Hooks and Observers in Bevy 0.17", "https://www.youtube.com/watch?v=BtwNc_sx1pE", "BtwNc_sx1pE", 38, 1408, false, "/downloads/chris/tubes/chris biscardi_[UCiSIL42pQRpc-8JNiYDFyzQ]/Season 2025/s2025e100100_Hooks and Observers in Bevy 0.17.mp4", false, ~U[2025-10-01 11:30:08Z]] 20:20:08.389 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z], 38] 20:20:08.390 [debug] QUERY OK source="media_items" db=0.7ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 20:20:08.391 [debug] QUERY OK source="media_items" db=0.7ms idle=2.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")))) [38] 20:20:08.391 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 20:20:08.392 [debug] QUERY OK source="tasks" db=0.2ms idle=1.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88163, 38, ~U[2026-01-01 02:20:08Z], ~U[2026-01-01 02:20:08Z]] 20:20:08.392 [info] {"args":{"id":38},"id":88110,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":45544675,"event":"job:stop","queue_time":124202,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:20:17.731 [info] {"source":"oban","duration":3614,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:20:47.736 [info] {"source":"oban","duration":3912,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:21:00.905 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:21:17.741 [info] {"source":"oban","duration":3537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:21:22.027 [info] {"args":{"id":36},"id":88112,"meta":{},"system_time":1767234082027121028,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:21:22.027 [debug] QUERY OK source="sources" db=0.4ms idle=1007.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:22.028 [debug] QUERY OK source="settings" db=0.3ms idle=681.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:21:22.029 [debug] QUERY OK source="media_items" db=1.4ms idle=681.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")))) [36] 20:21:22.030 [debug] QUERY OK source="media_items" db=0.1ms idle=8.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [36] 20:21:22.030 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:22.030 [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 [] 20:21:22.030 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:21:22.033 [debug] QUERY OK source="media_items" db=1.0ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [36] 20:21:22.034 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:21:22.034 [debug] Current batch of media processed. Will check again in 1000ms 20:21:22.035 [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 [] 20:21:22.035 [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 [] 20:21:22.035 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:21:22.035 [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/78/a7/78a74b06de3739874d80eaff9eaf2748d97b29b5d39a3308f1da0f3ec7cae1e0.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/06/c8/06c8abea9e75e06ac95774e28264eff5c85b806435fcc6617ef418b20ce4f735.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:21:23.035 [debug] Current batch of media processed. Will check again in 1000ms 20:21:24.036 [debug] Current batch of media processed. Will check again in 1000ms 20:21:25.037 [debug] Current batch of media processed. Will check again in 1000ms 20:21:26.038 [debug] Current batch of media processed. Will check again in 1000ms 20:21:27.039 [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" => 1, "timestamp" => 1765577950, "title" => "OpenAI was dead… Then GPT-5.2 dropped", "upload_date" => "20251212"} 20:21:27.039 [debug] QUERY OK source="sources" db=0.1ms idle=1693.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:27.040 [debug] QUERY OK source="sources" db=0.0ms idle=1693.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:27.041 [debug] QUERY OK source="media_items" db=1.2ms idle=1693.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] 20:21:27.042 [debug] QUERY OK source="media_items" db=0.7ms idle=1015.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "898b4da7-bf88-45c7-807a-5f427b9441df", "https://www.youtube.com/watch?v=rEvEXQvo-F8", false, "rEvEXQvo-F8", 36, [], 241, false, 1, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, false, 98, ~U[2025-12-12 22:19:10Z], ~U[2026-01-01 02:21:27Z], ~U[2026-01-01 02:21:27Z], "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", "https://www.youtube.com/watch?v=rEvEXQvo-F8", "rEvEXQvo-F8", 36, 241, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, ~U[2025-12-12 22:19:10Z]] 20:21:27.042 [debug] QUERY OK source="sources" db=0.1ms idle=15.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:27.043 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:27.043 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1758833] 20:21:27.043 [debug] Current batch of media processed. Will check again in 1000ms 20:21:28.044 [debug] Current batch of media processed. Will check again in 1000ms 20:21:29.045 [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" => 2, "timestamp" => 1765310318, "title" => "React.js shell shocked by 10.0 critical vulnerability…", "upload_date" => "20251209"} 20:21:29.046 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=699.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:29.046 [debug] QUERY OK source="sources" db=0.1ms idle=700.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:29.048 [debug] QUERY OK source="media_items" db=1.3ms idle=700.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 19:58:38Z], 36] 20:21:29.049 [debug] QUERY OK source="media_items" db=0.7ms idle=702.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "a00b1f10-6701-4fe1-9c86-1a2fe400bffb", "https://www.youtube.com/watch?v=QLK9G5zyU-Q", false, "QLK9G5zyU-Q", 36, [], 236, false, 2, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, false, 98, ~U[2025-12-09 19:58:38Z], ~U[2026-01-01 02:21:29Z], ~U[2026-01-01 02:21:29Z], "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…", "https://www.youtube.com/watch?v=QLK9G5zyU-Q", "QLK9G5zyU-Q", 36, 236, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, ~U[2025-12-09 19:58:38Z]] 20:21:29.049 [debug] QUERY OK source="sources" db=0.1ms idle=18.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:29.050 [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] 20:21:29.050 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1733891] 20:21:29.050 [debug] Current batch of media processed. Will check again in 1000ms 20:21:30.051 [debug] Current batch of media processed. Will check again in 1000ms 20:21:31.052 [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" => 3, "timestamp" => 1764971031, "title" => "Anthropic just bought your favorite JS runtime...", "upload_date" => "20251205"} 20:21:31.053 [debug] QUERY OK source="sources" db=0.2ms idle=706.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:31.053 [debug] QUERY OK source="sources" db=0.0ms idle=706.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:31.054 [debug] QUERY OK source="media_items" db=1.2ms idle=706.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-05 21:43:51Z], 36] 20:21:31.055 [debug] QUERY OK source="media_items" db=0.7ms idle=708.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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...", "d0885087-00d2-476e-9bd1-6f73bc23ccc7", "https://www.youtube.com/watch?v=5JMiNsV7P3Y", false, "5JMiNsV7P3Y", 36, [], 242, false, 3, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, false, 98, ~U[2025-12-05 21:43:51Z], ~U[2026-01-01 02:21:31Z], ~U[2026-01-01 02:21:31Z], "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...", "https://www.youtube.com/watch?v=5JMiNsV7P3Y", "5JMiNsV7P3Y", 36, 242, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, ~U[2025-12-05 21:43:51Z]] 20:21:31.056 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:31.056 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:31.056 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1703283] 20:21:31.056 [debug] Current batch of media processed. Will check again in 1000ms 20:21:32.057 [debug] Current batch of media processed. Will check again in 1000ms 20:21:33.058 [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" => 4, "timestamp" => 1764181232, "title" => "AI agents are paying each other now…", "upload_date" => "20251126"} 20:21:33.059 [debug] QUERY OK source="sources" db=0.1ms idle=712.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:33.059 [debug] QUERY OK source="sources" db=0.1ms idle=712.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:33.061 [debug] QUERY OK source="media_items" db=1.8ms idle=712.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-26 18:20:32Z], 36] 20:21:33.063 [debug] QUERY OK source="media_items" db=1.1ms idle=715.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "dff7d789-ff30-4ebe-bf81-30ab70762c91", "https://www.youtube.com/watch?v=S6wc6yvoZLY", false, "S6wc6yvoZLY", 36, [], 290, false, 4, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, false, 98, ~U[2025-11-26 18:20:32Z], ~U[2026-01-01 02:21:33Z], ~U[2026-01-01 02:21:33Z], "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…", "https://www.youtube.com/watch?v=S6wc6yvoZLY", "S6wc6yvoZLY", 36, 290, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, ~U[2025-11-26 18:20:32Z]] 20:21:33.063 [debug] QUERY OK source="sources" db=0.2ms idle=27.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:33.063 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:33.064 [debug] QUERY OK source="media_items" db=0.2ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1631140] 20:21:33.064 [debug] Current batch of media processed. Will check again in 1000ms 20:21:34.064 [debug] Current batch of media processed. Will check again in 1000ms 20:21:35.066 [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" => 5, "timestamp" => 1763753210, "title" => "Did Google just kill OpenAI?", "upload_date" => "20251121"} 20:21:35.066 [debug] QUERY OK source="sources" db=0.1ms idle=720.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:35.067 [debug] QUERY OK source="sources" db=0.1ms idle=720.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:35.068 [debug] QUERY OK source="media_items" db=1.2ms idle=720.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] 20:21:35.069 [debug] QUERY OK source="media_items" db=0.6ms idle=722.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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?", "e756ca58-9627-494f-9d1f-105d744c3bda", "https://www.youtube.com/watch?v=bsL7ZnKIAhs", false, "bsL7ZnKIAhs", 36, [], 246, false, 5, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, false, 98, ~U[2025-11-21 19:26:50Z], ~U[2026-01-01 02:21:35Z], ~U[2026-01-01 02:21:35Z], "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?", "https://www.youtube.com/watch?v=bsL7ZnKIAhs", "bsL7ZnKIAhs", 36, 246, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, ~U[2025-11-21 19:26:50Z]] 20:21:35.069 [debug] QUERY OK source="sources" db=0.1ms idle=31.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:35.070 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:35.070 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1592901] 20:21:35.070 [debug] Current batch of media processed. Will check again in 1000ms 20:21:36.071 [debug] Current batch of media processed. Will check again in 1000ms 20:21:37.072 [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" => 6, "timestamp" => 1763576066, "title" => "The entire internet just crashed... again", "upload_date" => "20251119"} 20:21:37.073 [debug] QUERY OK source="sources" db=0.4ms idle=726.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [36] 20:21:37.074 [debug] QUERY OK source="sources" db=0.3ms idle=727.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:37.076 [debug] QUERY OK source="media_items" db=1.9ms idle=727.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-19 18:14:26Z], 36] 20:21:37.079 [debug] QUERY OK source="media_items" db=1.7ms idle=730.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "709dd33c-adf6-49a3-a927-f016c9698f9f", "https://www.youtube.com/watch?v=tF_4baiIUiQ", false, "tF_4baiIUiQ", 36, [], 190, false, 6, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, false, 98, ~U[2025-11-19 18:14:26Z], ~U[2026-01-01 02:21:37Z], ~U[2026-01-01 02:21:37Z], "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", "https://www.youtube.com/watch?v=tF_4baiIUiQ", "tF_4baiIUiQ", 36, 190, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, ~U[2025-11-19 18:14:26Z]] 20:21:37.079 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=38.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:37.080 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:37.080 [debug] QUERY OK source="media_items" db=0.2ms 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 [1577478] 20:21:37.080 [debug] Current batch of media processed. Will check again in 1000ms 20:21:38.081 [debug] Current batch of media processed. Will check again in 1000ms 20:21:39.082 [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" => 7, "timestamp" => 1763145007, "title" => "The gaming console wars just got weird...", "upload_date" => "20251114"} 20:21:39.083 [debug] QUERY OK source="sources" db=0.2ms idle=736.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:39.083 [debug] QUERY OK source="sources" db=0.1ms idle=736.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:39.084 [debug] QUERY OK source="media_items" db=1.3ms idle=736.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-14 18:30:07Z], 36] 20:21:39.086 [debug] QUERY OK source="media_items" db=0.9ms idle=738.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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...", "1cc509ca-0054-4cb5-b62b-41d5537671a2", "https://www.youtube.com/watch?v=Q8QdKRbC1O0", false, "Q8QdKRbC1O0", 36, [], 235, false, 7, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, false, 98, ~U[2025-11-14 18:30:07Z], ~U[2026-01-01 02:21:39Z], ~U[2026-01-01 02:21:39Z], "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...", "https://www.youtube.com/watch?v=Q8QdKRbC1O0", "Q8QdKRbC1O0", 36, 235, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, ~U[2025-11-14 18:30:07Z]] 20:21:39.086 [debug] QUERY OK source="sources" db=0.1ms idle=43.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:39.086 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:39.087 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1534509] 20:21:39.087 [debug] Current batch of media processed. Will check again in 1000ms 20:21:40.087 [debug] Current batch of media processed. Will check again in 1000ms 20:21:41.088 [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" => 8, "timestamp" => 1762971723, "title" => "This neural interface writes code from my brain waves…", "upload_date" => "20251112"} 20:21:41.089 [debug] QUERY OK source="sources" db=0.1ms idle=742.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:41.089 [debug] QUERY OK source="sources" db=0.1ms idle=742.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:41.090 [debug] QUERY OK source="media_items" db=1.2ms idle=742.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] 20:21:41.093 [debug] QUERY OK source="media_items" db=2.3ms idle=744.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "93f57cfe-0f6b-4bbb-9576-5b52872db78c", "https://www.youtube.com/watch?v=4bQ2qhfJUjA", false, "4bQ2qhfJUjA", 36, [], 242, false, 8, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, false, 98, ~U[2025-11-12 18:22:03Z], ~U[2026-01-01 02:21:41Z], ~U[2026-01-01 02:21:41Z], "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…", "https://www.youtube.com/watch?v=4bQ2qhfJUjA", "4bQ2qhfJUjA", 36, 242, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, ~U[2025-11-12 18:22:03Z]] 20:21:41.093 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:41.093 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:41.094 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1518722] 20:21:41.094 [debug] Current batch of media processed. Will check again in 1000ms 20:21:42.094 [debug] Current batch of media processed. Will check again in 1000ms 20:21:43.096 [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" => 9, "timestamp" => 1762452081, "title" => "This new JS framework wants you to quit React…", "upload_date" => "20251106"} 20:21:43.096 [debug] QUERY OK source="sources" db=0.2ms idle=749.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:43.096 [debug] QUERY OK source="sources" db=0.1ms idle=750.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:43.098 [debug] QUERY OK source="media_items" db=1.3ms idle=750.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-06 18:01:21Z], 36] 20:21:43.099 [debug] QUERY OK source="media_items" db=0.7ms idle=752.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "a40d62e4-16b8-4988-96d8-867a3790c683", "https://www.youtube.com/watch?v=IIj9UWpvSFI", false, "IIj9UWpvSFI", 36, [], 228, false, 9, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, false, 98, ~U[2025-11-06 18:01:21Z], ~U[2026-01-01 02:21:43Z], ~U[2026-01-01 02:21:43Z], "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…", "https://www.youtube.com/watch?v=IIj9UWpvSFI", "IIj9UWpvSFI", 36, 228, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, ~U[2025-11-06 18:01:21Z]] 20:21:43.099 [debug] QUERY OK source="sources" db=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" = ?) [36] 20:21:43.100 [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] 20:21:43.100 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1471723] 20:21:43.100 [debug] Current batch of media processed. Will check again in 1000ms 20:21:44.101 [debug] Current batch of media processed. Will check again in 1000ms 20:21:45.102 [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" => 10, "timestamp" => 1761844039, "title" => "Cursor 2.0 is here... 5 things you didn't know it can do", "upload_date" => "20251030"} 20:21:45.103 [debug] QUERY OK source="sources" db=0.2ms idle=756.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:45.103 [debug] QUERY OK source="sources" db=0.1ms idle=757.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:45.105 [debug] QUERY OK source="media_items" db=1.2ms idle=757.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] 20:21:45.106 [debug] QUERY OK source="media_items" db=0.7ms idle=758.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "024fb2cb-9a89-4f60-b49d-422d14184a78", "https://www.youtube.com/watch?v=HIp8sFB2GGw", false, "HIp8sFB2GGw", 36, [], 276, false, 10, "/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, 98, ~U[2025-10-30 17:07:19Z], ~U[2026-01-01 02:21:45Z], ~U[2026-01-01 02:21:45Z], "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", "https://www.youtube.com/watch?v=HIp8sFB2GGw", "HIp8sFB2GGw", 36, 276, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", false, ~U[2025-10-30 17:07:19Z]] 20:21:45.106 [debug] QUERY OK source="sources" db=0.1ms idle=54.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:45.106 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:45.106 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1417261] 20:21:45.106 [debug] Current batch of media processed. Will check again in 1000ms 20:21:46.107 [debug] Current batch of media processed. Will check again in 1000ms 20:21:47.108 [debug] Current batch of media processed. Will check again in 1000ms 20:21:47.745 [info] {"source":"oban","duration":4022,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:21:48.110 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "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?", "duration" => 239, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", "id" => "q2czJLPJ4nA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=q2czJLPJ4nA", "playlist_index" => 11, "timestamp" => 1761761455, "title" => "The humanoid-robot dystopia arrived early...", "upload_date" => "20251029"} 20:21:48.111 [debug] QUERY OK source="sources" db=0.5ms idle=1764.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:48.111 [debug] QUERY OK source="sources" db=0.1ms idle=1764.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:48.113 [debug] QUERY OK source="media_items" db=1.2ms idle=1056.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-29 18:10:55Z], 36] 20:21:48.115 [debug] QUERY OK source="media_items" db=1.5ms idle=367.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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...", "6dd9d98a-55f3-4618-bbc9-a7e4565fc424", "https://www.youtube.com/watch?v=q2czJLPJ4nA", false, "q2czJLPJ4nA", 36, [], 239, false, 11, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", false, false, 98, ~U[2025-10-29 18:10:55Z], ~U[2026-01-01 02:21:48Z], ~U[2026-01-01 02:21:48Z], "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...", "https://www.youtube.com/watch?v=q2czJLPJ4nA", "q2czJLPJ4nA", 36, 239, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", false, ~U[2025-10-29 18:10:55Z]] 20:21:48.115 [debug] QUERY OK source="sources" db=0.1ms idle=58.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:48.115 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:48.116 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1410477] 20:21:48.116 [debug] Current batch of media processed. Will check again in 1000ms 20:21:49.116 [debug] Current batch of media processed. Will check again in 1000ms 20:21:50.117 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try the search engine with the best DX and get 2 months free with code FIRESHIP – https://www.meilisearch.com/cloud\n\nOpenAI just entered the browser wars with their release of ChatGPT Atlas, an agent web-browser than runs on vibes and Chromium.\n\nBut is it really just a Perplexity Comet knock-off or could its integration with ChatGPT make this a genuine Chrome killer?\n\n#OpenAI #Coding #Programming #Atlas\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-chatgpt-atlas/\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 ChatGPT Atlas?\n- Agentic Web Browsers\n- Atlas vs Chrome vs Perplexity Comet\n- What happened to Ladybird?", "duration" => 256, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102200_OpenAI’s new browser feels familiar….mp4", "id" => "5uSboan45Zg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5uSboan45Zg", "playlist_index" => 12, "timestamp" => 1761159860, "title" => "OpenAI’s new browser feels familiar…", "upload_date" => "20251022"} 20:21:50.118 [debug] QUERY OK source="sources" db=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" IN (?)) [36] 20:21:50.118 [debug] QUERY OK source="sources" db=0.1ms idle=771.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:50.120 [debug] QUERY OK source="media_items" db=1.2ms idle=771.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-22 19:04:20Z], 36] 20:21:50.122 [debug] QUERY OK source="media_items" db=1.9ms idle=773.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try the search engine with the best DX and get 2 months free with code FIRESHIP – https://www.meilisearch.com/cloud\n\nOpenAI just entered the browser wars with their release of ChatGPT Atlas, an agent web-browser than runs on vibes and Chromium.\n\nBut is it really just a Perplexity Comet knock-off or could its integration with ChatGPT make this a genuine Chrome killer?\n\n#OpenAI #Coding #Programming #Atlas\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-chatgpt-atlas/\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 ChatGPT Atlas?\n- Agentic Web Browsers\n- Atlas vs Chrome vs Perplexity Comet\n- What happened to Ladybird?", "OpenAI’s new browser feels familiar…", "8c33f2ed-6bba-450b-b214-2e6cea1eeecf", "https://www.youtube.com/watch?v=5uSboan45Zg", false, "5uSboan45Zg", 36, [], 256, false, 12, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102200_OpenAI’s new browser feels familiar….mp4", false, false, 98, ~U[2025-10-22 19:04:20Z], ~U[2026-01-01 02:21:50Z], ~U[2026-01-01 02:21:50Z], "Try the search engine with the best DX and get 2 months free with code FIRESHIP – https://www.meilisearch.com/cloud\n\nOpenAI just entered the browser wars with their release of ChatGPT Atlas, an agent web-browser than runs on vibes and Chromium.\n\nBut is it really just a Perplexity Comet knock-off or could its integration with ChatGPT make this a genuine Chrome killer?\n\n#OpenAI #Coding #Programming #Atlas\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-chatgpt-atlas/\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 ChatGPT Atlas?\n- Agentic Web Browsers\n- Atlas vs Chrome vs Perplexity Comet\n- What happened to Ladybird?", "OpenAI’s new browser feels familiar…", "https://www.youtube.com/watch?v=5uSboan45Zg", "5uSboan45Zg", 36, 256, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102200_OpenAI’s new browser feels familiar….mp4", false, ~U[2025-10-22 19:04:20Z]] 20:21:50.122 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [36] 20:21:50.123 [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] 20:21:50.123 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1356130] 20:21:50.123 [debug] Current batch of media processed. Will check again in 1000ms 20:21:51.124 [debug] Current batch of media processed. Will check again in 1000ms 20:21:52.126 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Traycer’s orchestration tool makes your coding agents smarter. Try it - https://traycer.ai\n\nYesterday, over 2,500 internet services got wrecked by the most catastrophic cloud outage in history, courtesy of AWS.\n\nIn today's video, we'll break down the technical details and explain how the world's addiction to cloud computing brought us all to our knees.\n\n#aws #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.techradar.com/news/live/amazon-web-services-alexa-ring-snapchat-fortnite-down-october-2025\n- https://www.youtube.com/watch?v=UVR9lhUGAyU\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- How AWS brought down the internet\n- How cloud storage works\n- US-EAST-1\n- WTF is DNS?", "duration" => 266, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102100_US-EAST-1 is humanity’s weakest link….mp4", "id" => "HqL0xhwDz9s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HqL0xhwDz9s", "playlist_index" => 13, "timestamp" => 1761065672, "title" => "US-EAST-1 is humanity’s weakest link…", "upload_date" => "20251021"} 20:21:52.126 [debug] QUERY OK source="sources" db=0.1ms idle=779.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:52.126 [debug] QUERY OK source="sources" db=0.1ms idle=779.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:52.128 [debug] QUERY OK source="media_items" db=1.2ms idle=779.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-21 16:54:32Z], 36] 20:21:52.129 [debug] QUERY OK source="media_items" db=0.7ms idle=781.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Traycer’s orchestration tool makes your coding agents smarter. Try it - https://traycer.ai\n\nYesterday, over 2,500 internet services got wrecked by the most catastrophic cloud outage in history, courtesy of AWS.\n\nIn today's video, we'll break down the technical details and explain how the world's addiction to cloud computing brought us all to our knees.\n\n#aws #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.techradar.com/news/live/amazon-web-services-alexa-ring-snapchat-fortnite-down-october-2025\n- https://www.youtube.com/watch?v=UVR9lhUGAyU\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- How AWS brought down the internet\n- How cloud storage works\n- US-EAST-1\n- WTF is DNS?", "US-EAST-1 is humanity’s weakest link…", "9033abc2-04c0-4f64-975d-5d2a8fc4e673", "https://www.youtube.com/watch?v=HqL0xhwDz9s", false, "HqL0xhwDz9s", 36, [], 266, false, 13, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102100_US-EAST-1 is humanity’s weakest link….mp4", false, false, 98, ~U[2025-10-21 16:54:32Z], ~U[2026-01-01 02:21:52Z], ~U[2026-01-01 02:21:52Z], "Traycer’s orchestration tool makes your coding agents smarter. Try it - https://traycer.ai\n\nYesterday, over 2,500 internet services got wrecked by the most catastrophic cloud outage in history, courtesy of AWS.\n\nIn today's video, we'll break down the technical details and explain how the world's addiction to cloud computing brought us all to our knees.\n\n#aws #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.techradar.com/news/live/amazon-web-services-alexa-ring-snapchat-fortnite-down-october-2025\n- https://www.youtube.com/watch?v=UVR9lhUGAyU\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- How AWS brought down the internet\n- How cloud storage works\n- US-EAST-1\n- WTF is DNS?", "US-EAST-1 is humanity’s weakest link…", "https://www.youtube.com/watch?v=HqL0xhwDz9s", "HqL0xhwDz9s", 36, 266, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102100_US-EAST-1 is humanity’s weakest link….mp4", false, ~U[2025-10-21 16:54:32Z]] 20:21:52.129 [debug] QUERY OK source="sources" db=0.1ms idle=65.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:52.129 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:52.130 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1348419] 20:21:52.130 [debug] Current batch of media processed. Will check again in 1000ms 20:21:53.130 [debug] Current batch of media processed. Will check again in 1000ms 20:21:54.132 [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\nIn today’s video, we’ll revisit everything announced at React Conf 2025 to see if it will actually make a difference…\n\n#React #Coding #Programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://conf.react.dev/\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’s useEffect bug\n- useEffectEvent\n- Activity\n- ViewTransition\n- Fragment refs\n- React Compiler 1.0\n- React Foundation\n- Why Remix 3 is ditching React", "duration" => 251, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101700_React wants to win you back….mp4", "id" => "yl0YWA2K2B0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yl0YWA2K2B0", "playlist_index" => 14, "timestamp" => 1760729559, "title" => "React wants to win you back…", "upload_date" => "20251017"} 20:21:54.132 [debug] QUERY OK source="sources" db=0.2ms idle=785.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:54.133 [debug] QUERY OK source="sources" db=0.1ms idle=785.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:54.134 [debug] QUERY OK source="media_items" db=1.2ms idle=786.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-17 19:32:39Z], 36] 20:21:54.136 [debug] QUERY OK source="media_items" db=1.3ms idle=787.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nIn today’s video, we’ll revisit everything announced at React Conf 2025 to see if it will actually make a difference…\n\n#React #Coding #Programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://conf.react.dev/\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’s useEffect bug\n- useEffectEvent\n- Activity\n- ViewTransition\n- Fragment refs\n- React Compiler 1.0\n- React Foundation\n- Why Remix 3 is ditching React", "React wants to win you back…", "036a173c-55f3-45e2-b741-19547e76742a", "https://www.youtube.com/watch?v=yl0YWA2K2B0", false, "yl0YWA2K2B0", 36, [], 251, false, 14, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101700_React wants to win you back….mp4", false, false, 98, ~U[2025-10-17 19:32:39Z], ~U[2026-01-01 02:21:54Z], ~U[2026-01-01 02:21:54Z], "Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nIn today’s video, we’ll revisit everything announced at React Conf 2025 to see if it will actually make a difference…\n\n#React #Coding #Programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://conf.react.dev/\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’s useEffect bug\n- useEffectEvent\n- Activity\n- ViewTransition\n- Fragment refs\n- React Compiler 1.0\n- React Foundation\n- Why Remix 3 is ditching React", "React wants to win you back…", "https://www.youtube.com/watch?v=yl0YWA2K2B0", "yl0YWA2K2B0", 36, 251, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101700_React wants to win you back….mp4", false, ~U[2025-10-17 19:32:39Z]] 20:21:54.136 [debug] QUERY OK source="sources" db=0.1ms idle=68.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:54.136 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:54.136 [debug] QUERY OK source="media_items" db=0.1ms 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 [1318628] 20:21:54.137 [debug] Current batch of media processed. Will check again in 1000ms 20:21:55.137 [debug] Current batch of media processed. Will check again in 1000ms 20:21:56.139 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Install CodeRabbit CLI for free to catch all your AI slop code - https://coderabbit.link/fireship-cli\n\nThe Free Software Foundation just gave humanity a final shot at salvation by announcing the Librephone, one of the most ambitious open-source projects of our time. But can this project really topple iOS and Android? Let's find out...\n\n#tech #iOS #Android\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.fsf.org/news/librephone-project\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 Librephone?\n- Free Software Foundation\n- Is Android really open-source?\n- Richard Stallman hires Rob Savoye", "duration" => 250, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101600_Apple and Google won’t like this....mp4", "id" => "qJle6Bki4Og", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qJle6Bki4Og", "playlist_index" => 15, "timestamp" => 1760635949, "title" => "Apple and Google won’t like this...", "upload_date" => "20251016"} 20:21:56.139 [debug] QUERY OK source="sources" db=0.2ms idle=792.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:56.140 [debug] QUERY OK source="sources" db=0.1ms idle=793.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:56.141 [debug] QUERY OK source="media_items" db=1.2ms idle=793.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-16 17:32:29Z], 36] 20:21:56.142 [debug] QUERY OK source="media_items" db=0.7ms idle=795.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Install CodeRabbit CLI for free to catch all your AI slop code - https://coderabbit.link/fireship-cli\n\nThe Free Software Foundation just gave humanity a final shot at salvation by announcing the Librephone, one of the most ambitious open-source projects of our time. But can this project really topple iOS and Android? Let's find out...\n\n#tech #iOS #Android\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.fsf.org/news/librephone-project\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 Librephone?\n- Free Software Foundation\n- Is Android really open-source?\n- Richard Stallman hires Rob Savoye", "Apple and Google won’t like this...", "e042605f-16a3-4e91-8e52-d62ee2cc2c82", "https://www.youtube.com/watch?v=qJle6Bki4Og", false, "qJle6Bki4Og", 36, [], 250, false, 15, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101600_Apple and Google won’t like this....mp4", false, false, 98, ~U[2025-10-16 17:32:29Z], ~U[2026-01-01 02:21:56Z], ~U[2026-01-01 02:21:56Z], "Install CodeRabbit CLI for free to catch all your AI slop code - https://coderabbit.link/fireship-cli\n\nThe Free Software Foundation just gave humanity a final shot at salvation by announcing the Librephone, one of the most ambitious open-source projects of our time. But can this project really topple iOS and Android? Let's find out...\n\n#tech #iOS #Android\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.fsf.org/news/librephone-project\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 Librephone?\n- Free Software Foundation\n- Is Android really open-source?\n- Richard Stallman hires Rob Savoye", "Apple and Google won’t like this...", "https://www.youtube.com/watch?v=qJle6Bki4Og", "qJle6Bki4Og", 36, 250, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101600_Apple and Google won’t like this....mp4", false, ~U[2025-10-16 17:32:29Z]] 20:21:56.142 [debug] QUERY OK source="sources" db=0.1ms idle=72.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:21:56.143 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:21:56.143 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1309960] 20:21:56.143 [debug] Current batch of media processed. Will check again in 1000ms 20:21:57.144 [debug] Current batch of media processed. Will check again in 1000ms 20:21:58.146 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Deploy your app the easy way with Sevalla and get $50 in free credits - https://sevalla.com/fireship\n\nAI coding may be overhyped but Model Context Protocols are making it possible for experienced devs to vibe code responsibly. In today's video, we'll look at 7 MCP servers that make programming with AI suck less...\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://svelte.dev/docs/mcp/overview\n- https://www.figma.com/mcp-catalog/\n- https://awslabs.github.io/mcp/\n- https://docs.stripe.com/mcp\n- https://docs.sentry.io/product/sentry-mcp/\n- https://github.com/github/github-mcp-server\n- https://github.com/sooperset/mcp-atlassian\n\n📚 Chapters\n1. Framework optimizers\n2. Design implementers\n3. API executers\n4. Error catchers\n5. QA terminators\n6. Infra scalers\n7. Build your own\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 an MCP server?\n- Vibe coding tips\n- Programming with ai\n- Best MCP servers for developers", "duration" => 344, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101400_How to make vibe coding not suck….mp4", "id" => "PLKrSVuT-Dg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PLKrSVuT-Dg", "playlist_index" => 16, "timestamp" => 1760466881, "title" => "How to make vibe coding not suck…", "upload_date" => "20251014"} 20:21:58.146 [debug] QUERY OK source="sources" db=0.2ms idle=800.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:21:58.147 [debug] QUERY OK source="sources" db=0.0ms idle=800.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:21:58.148 [debug] QUERY OK source="media_items" db=1.4ms idle=800.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-14 18:34:41Z], 36] 20:21:58.150 [debug] QUERY OK source="media_items" db=1.7ms idle=802.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Deploy your app the easy way with Sevalla and get $50 in free credits - https://sevalla.com/fireship\n\nAI coding may be overhyped but Model Context Protocols are making it possible for experienced devs to vibe code responsibly. In today's video, we'll look at 7 MCP servers that make programming with AI suck less...\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://svelte.dev/docs/mcp/overview\n- https://www.figma.com/mcp-catalog/\n- https://awslabs.github.io/mcp/\n- https://docs.stripe.com/mcp\n- https://docs.sentry.io/product/sentry-mcp/\n- https://github.com/github/github-mcp-server\n- https://github.com/sooperset/mcp-atlassian\n\n📚 Chapters\n1. Framework optimizers\n2. Design implementers\n3. API executers\n4. Error catchers\n5. QA terminators\n6. Infra scalers\n7. Build your own\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 an MCP server?\n- Vibe coding tips\n- Programming with ai\n- Best MCP servers for developers", "How to make vibe coding not suck…", "90c5a803-ca15-44c2-9dec-e9d6c7c7d6d2", "https://www.youtube.com/watch?v=PLKrSVuT-Dg", false, "PLKrSVuT-Dg", 36, [], 344, false, 16, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101400_How to make vibe coding not suck….mp4", false, false, 98, ~U[2025-10-14 18:34:41Z], ~U[2026-01-01 02:21:58Z], ~U[2026-01-01 02:21:58Z], "Deploy your app the easy way with Sevalla and get $50 in free credits - https://sevalla.com/fireship\n\nAI coding may be overhyped but Model Context Protocols are making it possible for experienced devs to vibe code responsibly. In today's video, we'll look at 7 MCP servers that make programming with AI suck less...\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://svelte.dev/docs/mcp/overview\n- https://www.figma.com/mcp-catalog/\n- https://awslabs.github.io/mcp/\n- https://docs.stripe.com/mcp\n- https://docs.sentry.io/product/sentry-mcp/\n- https://github.com/github/github-mcp-server\n- https://github.com/sooperset/mcp-atlassian\n\n📚 Chapters\n1. Framework optimizers\n2. Design implementers\n3. API executers\n4. Error catchers\n5. QA terminators\n6. Infra scalers\n7. Build your own\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 an MCP server?\n- Vibe coding tips\n- Programming with ai\n- Best MCP servers for developers", "How to make vibe coding not suck…", "https://www.youtube.com/watch?v=PLKrSVuT-Dg", "PLKrSVuT-Dg", 36, 344, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101400_How to make vibe coding not suck….mp4", false, ~U[2025-10-14 18:34:41Z]] 20:21:58.151 [debug] QUERY OK source="sources" db=0.1ms idle=78.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:21:58.151 [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] 20:21:58.151 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1294489] 20:21:58.151 [debug] Current batch of media processed. Will check again in 1000ms 20:21:59.152 [debug] Current batch of media processed. Will check again in 1000ms 20:22:00.154 [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\nAt OpenAI DevDay 2025, Sam Altman unleashed a flurry of new features that could change the way developers build AI-powered applications. \n\nBut OpenAI's biggest bet is on turning ChatGPT into an app platform or even an operating system that you're completely locked into. Let's take a look...\n\n#openai #chatgpt #ai #coding\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/devday/\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- OpenAI DevDay 2025\n- ChatGPT Apps SDK\n- ChatGPT Agentkit\n- ChatGPT vs n8n\n- Codex Updates\n- GPT-5 Pro\n- Sora 2", "duration" => 258, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100700_OpenAI just made your entire tech stack obsolete....mp4", "id" => "91aH8jsG4cc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=91aH8jsG4cc", "playlist_index" => 17, "timestamp" => 1759864252, "title" => "OpenAI just made your entire tech stack obsolete...", "upload_date" => "20251007"} 20:22:00.154 [debug] QUERY OK source="sources" db=0.1ms idle=807.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:22:00.154 [debug] QUERY OK source="sources" db=0.1ms idle=807.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:22:00.156 [debug] QUERY OK source="media_items" db=1.3ms idle=808.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-07 19:10:52Z], 36] 20:22:00.158 [debug] QUERY OK source="media_items" db=1.4ms idle=809.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nAt OpenAI DevDay 2025, Sam Altman unleashed a flurry of new features that could change the way developers build AI-powered applications. \n\nBut OpenAI's biggest bet is on turning ChatGPT into an app platform or even an operating system that you're completely locked into. Let's take a look...\n\n#openai #chatgpt #ai #coding\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/devday/\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- OpenAI DevDay 2025\n- ChatGPT Apps SDK\n- ChatGPT Agentkit\n- ChatGPT vs n8n\n- Codex Updates\n- GPT-5 Pro\n- Sora 2", "OpenAI just made your entire tech stack obsolete...", "a3fc85d6-ec1e-4733-a28e-1f95718790f5", "https://www.youtube.com/watch?v=91aH8jsG4cc", false, "91aH8jsG4cc", 36, [], 258, false, 17, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100700_OpenAI just made your entire tech stack obsolete....mp4", false, false, 98, ~U[2025-10-07 19:10:52Z], ~U[2026-01-01 02:22:00Z], ~U[2026-01-01 02:22:00Z], "Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nAt OpenAI DevDay 2025, Sam Altman unleashed a flurry of new features that could change the way developers build AI-powered applications. \n\nBut OpenAI's biggest bet is on turning ChatGPT into an app platform or even an operating system that you're completely locked into. Let's take a look...\n\n#openai #chatgpt #ai #coding\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/devday/\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- OpenAI DevDay 2025\n- ChatGPT Apps SDK\n- ChatGPT Agentkit\n- ChatGPT vs n8n\n- Codex Updates\n- GPT-5 Pro\n- Sora 2", "OpenAI just made your entire tech stack obsolete...", "https://www.youtube.com/watch?v=91aH8jsG4cc", "91aH8jsG4cc", 36, 258, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100700_OpenAI just made your entire tech stack obsolete....mp4", false, ~U[2025-10-07 19:10:52Z]] 20:22:00.158 [debug] QUERY OK source="sources" db=0.1ms idle=82.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:00.158 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:22:00.159 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1241654] 20:22:00.159 [debug] Current batch of media processed. Will check again in 1000ms 20:22:00.907 [info] {"source":"oban","duration":816,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:22:01.160 [debug] Current batch of media processed. Will check again in 1000ms 20:22:02.161 [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\nAlibaba just announced a $52 billion roadmap towards artificial super intelligence and their ultimate goal of becoming the Android of the AI era. But can the announcements made at Apsara 2025 really put them on the road to ASI? Let's find out...\n\n#ai #tech #alibaba\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.alibabacloud.com/en/apsara-conference\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 Alibaba announced at Apsara 2025\n- How close is Alibaba achieve ASI?\n- Are Alibaba's plans achievable?\n- Qwen 3-Max", "duration" => 192, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100300_Alibaba is going all in on Qwen….mp4", "id" => "SquU4Bpc73Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SquU4Bpc73Y", "playlist_index" => 18, "timestamp" => 1759507348, "title" => "Alibaba is going all in on Qwen…", "upload_date" => "20251003"} 20:22:02.162 [debug] QUERY OK source="sources" db=0.1ms idle=1084.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:22:02.162 [debug] QUERY OK source="sources" db=0.1ms idle=815.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:22:02.163 [debug] QUERY OK source="media_items" db=1.2ms idle=815.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-03 16:02:28Z], 36] 20:22:02.164 [debug] QUERY OK source="media_items" db=0.7ms idle=817.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nAlibaba just announced a $52 billion roadmap towards artificial super intelligence and their ultimate goal of becoming the Android of the AI era. But can the announcements made at Apsara 2025 really put them on the road to ASI? Let's find out...\n\n#ai #tech #alibaba\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.alibabacloud.com/en/apsara-conference\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 Alibaba announced at Apsara 2025\n- How close is Alibaba achieve ASI?\n- Are Alibaba's plans achievable?\n- Qwen 3-Max", "Alibaba is going all in on Qwen…", "2ca941ed-86d9-4534-8172-e224a603ab0e", "https://www.youtube.com/watch?v=SquU4Bpc73Y", false, "SquU4Bpc73Y", 36, [], 192, false, 18, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100300_Alibaba is going all in on Qwen….mp4", false, false, 98, ~U[2025-10-03 16:02:28Z], ~U[2026-01-01 02:22:02Z], ~U[2026-01-01 02:22:02Z], "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nAlibaba just announced a $52 billion roadmap towards artificial super intelligence and their ultimate goal of becoming the Android of the AI era. But can the announcements made at Apsara 2025 really put them on the road to ASI? Let's find out...\n\n#ai #tech #alibaba\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.alibabacloud.com/en/apsara-conference\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 Alibaba announced at Apsara 2025\n- How close is Alibaba achieve ASI?\n- Are Alibaba's plans achievable?\n- Qwen 3-Max", "Alibaba is going all in on Qwen…", "https://www.youtube.com/watch?v=SquU4Bpc73Y", "SquU4Bpc73Y", 36, 192, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100300_Alibaba is going all in on Qwen….mp4", false, ~U[2025-10-03 16:02:28Z]] 20:22:02.164 [debug] QUERY OK source="sources" db=0.1ms idle=86.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:22:02.165 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:22:02.165 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1209610] 20:22:02.165 [debug] Current batch of media processed. Will check again in 1000ms 20:22:03.166 [debug] Current batch of media processed. Will check again in 1000ms 20:22:04.168 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try out Blitzy’s codegen platform for enterprise codebases for free - https://blitzy.com\n\nOpenAI's new Sora 2 model is the most accurate, realistic and controllable than anything we've seen before.\n\nIn today's video, we'll take a look at what Sora 2 means video content creators and whether they're about to go the way of the dodo. \n\n#Coding #programming #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/sora-2/\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- OpenAI Sora 2\n- What can Sora 2 do?\n- The future of generative video", "duration" => 222, "filename" => "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100100_OpenAI’s new slop machine is open for business….mp4", "id" => "hkSj-QapfZo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hkSj-QapfZo", "playlist_index" => 19, "timestamp" => 1759343906, "title" => "OpenAI’s new slop machine is open for business…", "upload_date" => "20251001"} 20:22:04.168 [debug] QUERY OK source="sources" db=0.2ms idle=822.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:22:04.169 [debug] QUERY OK source="sources" db=0.1ms idle=822.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:22:04.170 [debug] QUERY OK source="media_items" db=1.4ms idle=822.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-01 18:38:26Z], 36] 20:22:04.173 [debug] QUERY OK source="media_items" db=1.7ms idle=824.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try out Blitzy’s codegen platform for enterprise codebases for free - https://blitzy.com\n\nOpenAI's new Sora 2 model is the most accurate, realistic and controllable than anything we've seen before.\n\nIn today's video, we'll take a look at what Sora 2 means video content creators and whether they're about to go the way of the dodo. \n\n#Coding #programming #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/sora-2/\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- OpenAI Sora 2\n- What can Sora 2 do?\n- The future of generative video", "OpenAI’s new slop machine is open for business…", "f9c79f5b-f866-4e4f-aa85-b46a4729cea7", "https://www.youtube.com/watch?v=hkSj-QapfZo", false, "hkSj-QapfZo", 36, [], 222, false, 19, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100100_OpenAI’s new slop machine is open for business….mp4", false, false, 98, ~U[2025-10-01 18:38:26Z], ~U[2026-01-01 02:22:04Z], ~U[2026-01-01 02:22:04Z], "Try out Blitzy’s codegen platform for enterprise codebases for free - https://blitzy.com\n\nOpenAI's new Sora 2 model is the most accurate, realistic and controllable than anything we've seen before.\n\nIn today's video, we'll take a look at what Sora 2 means video content creators and whether they're about to go the way of the dodo. \n\n#Coding #programming #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/sora-2/\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- OpenAI Sora 2\n- What can Sora 2 do?\n- The future of generative video", "OpenAI’s new slop machine is open for business…", "https://www.youtube.com/watch?v=hkSj-QapfZo", "hkSj-QapfZo", 36, 222, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100100_OpenAI’s new slop machine is open for business….mp4", false, ~U[2025-10-01 18:38:26Z]] 20:22:04.173 [debug] QUERY OK source="sources" db=0.2ms idle=91.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:22:04.173 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:22:04.174 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1194956] 20:22:04.174 [debug] Current batch of media processed. Will check again in 1000ms 20:22:05.174 [debug] Current batch of media processed. Will check again in 1000ms 20:22:05.879 [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/78/a7/78a74b06de3739874d80eaff9eaf2748d97b29b5d39a3308f1da0f3ec7cae1e0.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/06/c8/06c8abea9e75e06ac95774e28264eff5c85b806435fcc6617ef418b20ce4f735.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:22:05.880 [debug] Gracefully stopping file follower 20:22:05.880 [debug] QUERY OK source="sources" db=0.2ms idle=796.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:22:05.881 [debug] QUERY OK source="sources" db=0.1ms idle=534.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:22:05.882 [debug] QUERY OK source="media_items" db=1.2ms idle=534.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-12 22:19:10Z], 36] 20:22:05.883 [debug] QUERY OK source="media_items" db=0.7ms idle=536.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "6350eb1b-04af-4197-818e-67cf70e00231", "https://www.youtube.com/watch?v=rEvEXQvo-F8", false, "rEvEXQvo-F8", 36, [], 241, false, 1, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, false, 98, ~U[2025-12-12 22:19:10Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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", "https://www.youtube.com/watch?v=rEvEXQvo-F8", "rEvEXQvo-F8", 36, 241, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e121200_OpenAI was dead… Then GPT-5.2 dropped.mp4", false, ~U[2025-12-12 22:19:10Z]] 20:22:05.883 [debug] QUERY OK source="sources" db=0.1ms idle=536.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:22:05.884 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 19:58:38Z], 36] 20:22:05.885 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "b1605302-242a-4c8e-aef2-4c02b4369896", "https://www.youtube.com/watch?v=QLK9G5zyU-Q", false, "QLK9G5zyU-Q", 36, [], 236, false, 2, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, false, 98, ~U[2025-12-09 19:58:38Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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…", "https://www.youtube.com/watch?v=QLK9G5zyU-Q", "QLK9G5zyU-Q", 36, 236, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120900_React.js shell shocked by 10.0 critical vulnerability….mp4", false, ~U[2025-12-09 19:58:38Z]] 20:22:05.885 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.887 [debug] QUERY OK source="media_items" db=1.0ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 21:43:51Z], 36] 20:22:05.888 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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...", "85a37379-ff64-4a31-a1b5-aa28c6d59881", "https://www.youtube.com/watch?v=5JMiNsV7P3Y", false, "5JMiNsV7P3Y", 36, [], 242, false, 3, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, false, 98, ~U[2025-12-05 21:43:51Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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...", "https://www.youtube.com/watch?v=5JMiNsV7P3Y", "5JMiNsV7P3Y", 36, 242, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e120500_Anthropic just bought your favorite JS runtime....mp4", false, ~U[2025-12-05 21:43:51Z]] 20:22:05.888 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.889 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-26 18:20:32Z], 36] 20:22:05.890 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "7bd4f503-a332-4ede-b4b0-1d7c01f68ab9", "https://www.youtube.com/watch?v=S6wc6yvoZLY", false, "S6wc6yvoZLY", 36, [], 290, false, 4, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, false, 98, ~U[2025-11-26 18:20:32Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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…", "https://www.youtube.com/watch?v=S6wc6yvoZLY", "S6wc6yvoZLY", 36, 290, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112600_AI agents are paying each other now….mp4", false, ~U[2025-11-26 18:20:32Z]] 20:22:05.890 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.891 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-21 19:26:50Z], 36] 20:22:05.894 [debug] QUERY OK source="media_items" db=2.1ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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?", "a5540e67-fdb2-45a1-b48c-26146f5cb063", "https://www.youtube.com/watch?v=bsL7ZnKIAhs", false, "bsL7ZnKIAhs", 36, [], 246, false, 5, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, false, 98, ~U[2025-11-21 19:26:50Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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?", "https://www.youtube.com/watch?v=bsL7ZnKIAhs", "bsL7ZnKIAhs", 36, 246, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e112100_Did Google just kill OpenAI?.mp4", false, ~U[2025-11-21 19:26:50Z]] 20:22:05.894 [debug] QUERY OK source="sources" db=0.2ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.895 [debug] QUERY OK source="media_items" db=1.1ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-19 18:14:26Z], 36] 20:22:05.896 [debug] QUERY OK source="media_items" db=0.6ms idle=5.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "dfd4bae2-3d1c-4095-80c4-2ba677f7056d", "https://www.youtube.com/watch?v=tF_4baiIUiQ", false, "tF_4baiIUiQ", 36, [], 190, false, 6, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, false, 98, ~U[2025-11-19 18:14:26Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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", "https://www.youtube.com/watch?v=tF_4baiIUiQ", "tF_4baiIUiQ", 36, 190, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111900_The entire internet just crashed... again.mp4", false, ~U[2025-11-19 18:14:26Z]] 20:22:05.897 [debug] QUERY OK source="sources" db=0.2ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.898 [debug] QUERY OK source="media_items" db=1.2ms idle=3.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-14 18:30:07Z], 36] 20:22:05.899 [debug] QUERY OK source="media_items" db=0.7ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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...", "f3f5878f-1738-4806-a3ee-8ca562ad378f", "https://www.youtube.com/watch?v=Q8QdKRbC1O0", false, "Q8QdKRbC1O0", 36, [], 235, false, 7, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, false, 98, ~U[2025-11-14 18:30:07Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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...", "https://www.youtube.com/watch?v=Q8QdKRbC1O0", "Q8QdKRbC1O0", 36, 235, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111400_The gaming console wars just got weird....mp4", false, ~U[2025-11-14 18:30:07Z]] 20:22:05.899 [debug] QUERY OK source="sources" db=0.2ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.901 [debug] QUERY OK source="media_items" db=1.1ms idle=3.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-12 18:22:03Z], 36] 20:22:05.902 [debug] QUERY OK source="media_items" db=0.6ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "5a4cdbc9-34bf-42b7-90e0-8a8ea0f426e7", "https://www.youtube.com/watch?v=4bQ2qhfJUjA", false, "4bQ2qhfJUjA", 36, [], 242, false, 8, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, false, 98, ~U[2025-11-12 18:22:03Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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…", "https://www.youtube.com/watch?v=4bQ2qhfJUjA", "4bQ2qhfJUjA", 36, 242, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e111200_This neural interface writes code from my brain waves….mp4", false, ~U[2025-11-12 18:22:03Z]] 20:22:05.902 [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" = ?) [36] 20:22:05.903 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-06 18:01:21Z], 36] 20:22:05.904 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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…", "2098c3db-c21e-448a-a7c8-ddf4269efafb", "https://www.youtube.com/watch?v=IIj9UWpvSFI", false, "IIj9UWpvSFI", 36, [], 228, false, 9, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, false, 98, ~U[2025-11-06 18:01:21Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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…", "https://www.youtube.com/watch?v=IIj9UWpvSFI", "IIj9UWpvSFI", 36, 228, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e110600_This new JS framework wants you to quit React….mp4", false, ~U[2025-11-06 18:01:21Z]] 20:22:05.904 [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" = ?) [36] 20:22:05.905 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 17:07:19Z], 36] 20:22:05.906 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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", "14150693-3403-49a9-80e5-b1610c259330", "https://www.youtube.com/watch?v=HIp8sFB2GGw", false, "HIp8sFB2GGw", 36, [], 276, false, 10, "/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, 98, ~U[2025-10-30 17:07:19Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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", "https://www.youtube.com/watch?v=HIp8sFB2GGw", "HIp8sFB2GGw", 36, 276, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e103000_Cursor 2.0 is here... 5 things you didn't know it can do.mp4", false, ~U[2025-10-30 17:07:19Z]] 20:22:05.907 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.908 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-29 18:10:55Z], 36] 20:22:05.909 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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...", "564862e0-9880-4607-a8e9-78c490355b86", "https://www.youtube.com/watch?v=q2czJLPJ4nA", false, "q2czJLPJ4nA", 36, [], 239, false, 11, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", false, false, 98, ~U[2025-10-29 18:10:55Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "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...", "https://www.youtube.com/watch?v=q2czJLPJ4nA", "q2czJLPJ4nA", 36, 239, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102900_The humanoid-robot dystopia arrived early....mp4", false, ~U[2025-10-29 18:10:55Z]] 20:22:05.909 [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" = ?) [36] 20:22:05.910 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-22 19:04:20Z], 36] 20:22:05.911 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try the search engine with the best DX and get 2 months free with code FIRESHIP – https://www.meilisearch.com/cloud\n\nOpenAI just entered the browser wars with their release of ChatGPT Atlas, an agent web-browser than runs on vibes and Chromium.\n\nBut is it really just a Perplexity Comet knock-off or could its integration with ChatGPT make this a genuine Chrome killer?\n\n#OpenAI #Coding #Programming #Atlas\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-chatgpt-atlas/\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 ChatGPT Atlas?\n- Agentic Web Browsers\n- Atlas vs Chrome vs Perplexity Comet\n- What happened to Ladybird?", "OpenAI’s new browser feels familiar…", "ebb3e114-5484-42f4-b6e9-8fa2c4b80fe0", "https://www.youtube.com/watch?v=5uSboan45Zg", false, "5uSboan45Zg", 36, [], 256, false, 12, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102200_OpenAI’s new browser feels familiar….mp4", false, false, 98, ~U[2025-10-22 19:04:20Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Try the search engine with the best DX and get 2 months free with code FIRESHIP – https://www.meilisearch.com/cloud\n\nOpenAI just entered the browser wars with their release of ChatGPT Atlas, an agent web-browser than runs on vibes and Chromium.\n\nBut is it really just a Perplexity Comet knock-off or could its integration with ChatGPT make this a genuine Chrome killer?\n\n#OpenAI #Coding #Programming #Atlas\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/introducing-chatgpt-atlas/\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 ChatGPT Atlas?\n- Agentic Web Browsers\n- Atlas vs Chrome vs Perplexity Comet\n- What happened to Ladybird?", "OpenAI’s new browser feels familiar…", "https://www.youtube.com/watch?v=5uSboan45Zg", "5uSboan45Zg", 36, 256, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102200_OpenAI’s new browser feels familiar….mp4", false, ~U[2025-10-22 19:04:20Z]] 20:22:05.912 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.913 [debug] QUERY OK source="media_items" db=1.0ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-21 16:54:32Z], 36] 20:22:05.914 [debug] QUERY OK source="media_items" db=0.7ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Traycer’s orchestration tool makes your coding agents smarter. Try it - https://traycer.ai\n\nYesterday, over 2,500 internet services got wrecked by the most catastrophic cloud outage in history, courtesy of AWS.\n\nIn today's video, we'll break down the technical details and explain how the world's addiction to cloud computing brought us all to our knees.\n\n#aws #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.techradar.com/news/live/amazon-web-services-alexa-ring-snapchat-fortnite-down-october-2025\n- https://www.youtube.com/watch?v=UVR9lhUGAyU\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- How AWS brought down the internet\n- How cloud storage works\n- US-EAST-1\n- WTF is DNS?", "US-EAST-1 is humanity’s weakest link…", "8dd11cfa-d80e-4e58-9814-438a07f258ed", "https://www.youtube.com/watch?v=HqL0xhwDz9s", false, "HqL0xhwDz9s", 36, [], 266, false, 13, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102100_US-EAST-1 is humanity’s weakest link….mp4", false, false, 98, ~U[2025-10-21 16:54:32Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Traycer’s orchestration tool makes your coding agents smarter. Try it - https://traycer.ai\n\nYesterday, over 2,500 internet services got wrecked by the most catastrophic cloud outage in history, courtesy of AWS.\n\nIn today's video, we'll break down the technical details and explain how the world's addiction to cloud computing brought us all to our knees.\n\n#aws #tech #coding #programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.techradar.com/news/live/amazon-web-services-alexa-ring-snapchat-fortnite-down-october-2025\n- https://www.youtube.com/watch?v=UVR9lhUGAyU\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- How AWS brought down the internet\n- How cloud storage works\n- US-EAST-1\n- WTF is DNS?", "US-EAST-1 is humanity’s weakest link…", "https://www.youtube.com/watch?v=HqL0xhwDz9s", "HqL0xhwDz9s", 36, 266, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e102100_US-EAST-1 is humanity’s weakest link….mp4", false, ~U[2025-10-21 16:54:32Z]] 20:22:05.914 [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" = ?) [36] 20:22:05.915 [debug] QUERY OK source="media_items" db=1.0ms idle=3.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-17 19:32:39Z], 36] 20:22:05.916 [debug] QUERY OK source="media_items" db=0.6ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nIn today’s video, we’ll revisit everything announced at React Conf 2025 to see if it will actually make a difference…\n\n#React #Coding #Programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://conf.react.dev/\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’s useEffect bug\n- useEffectEvent\n- Activity\n- ViewTransition\n- Fragment refs\n- React Compiler 1.0\n- React Foundation\n- Why Remix 3 is ditching React", "React wants to win you back…", "a47f9d82-3d96-4468-9d78-777b3f91e192", "https://www.youtube.com/watch?v=yl0YWA2K2B0", false, "yl0YWA2K2B0", 36, [], 251, false, 14, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101700_React wants to win you back….mp4", false, false, 98, ~U[2025-10-17 19:32:39Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Get 20% off Mobbin Pro to make your apps not ugly - https://mobbin.com/fireship\n\nIn today’s video, we’ll revisit everything announced at React Conf 2025 to see if it will actually make a difference…\n\n#React #Coding #Programming\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://conf.react.dev/\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’s useEffect bug\n- useEffectEvent\n- Activity\n- ViewTransition\n- Fragment refs\n- React Compiler 1.0\n- React Foundation\n- Why Remix 3 is ditching React", "React wants to win you back…", "https://www.youtube.com/watch?v=yl0YWA2K2B0", "yl0YWA2K2B0", 36, 251, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101700_React wants to win you back….mp4", false, ~U[2025-10-17 19:32:39Z]] 20:22:05.916 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.917 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-16 17:32:29Z], 36] 20:22:05.918 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Install CodeRabbit CLI for free to catch all your AI slop code - https://coderabbit.link/fireship-cli\n\nThe Free Software Foundation just gave humanity a final shot at salvation by announcing the Librephone, one of the most ambitious open-source projects of our time. But can this project really topple iOS and Android? Let's find out...\n\n#tech #iOS #Android\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.fsf.org/news/librephone-project\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 Librephone?\n- Free Software Foundation\n- Is Android really open-source?\n- Richard Stallman hires Rob Savoye", "Apple and Google won’t like this...", "2c75d7c3-f330-4c85-926b-64a793111cfc", "https://www.youtube.com/watch?v=qJle6Bki4Og", false, "qJle6Bki4Og", 36, [], 250, false, 15, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101600_Apple and Google won’t like this....mp4", false, false, 98, ~U[2025-10-16 17:32:29Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Install CodeRabbit CLI for free to catch all your AI slop code - https://coderabbit.link/fireship-cli\n\nThe Free Software Foundation just gave humanity a final shot at salvation by announcing the Librephone, one of the most ambitious open-source projects of our time. But can this project really topple iOS and Android? Let's find out...\n\n#tech #iOS #Android\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.fsf.org/news/librephone-project\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 Librephone?\n- Free Software Foundation\n- Is Android really open-source?\n- Richard Stallman hires Rob Savoye", "Apple and Google won’t like this...", "https://www.youtube.com/watch?v=qJle6Bki4Og", "qJle6Bki4Og", 36, 250, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101600_Apple and Google won’t like this....mp4", false, ~U[2025-10-16 17:32:29Z]] 20:22:05.919 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.920 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-14 18:34:41Z], 36] 20:22:05.921 [debug] QUERY OK source="media_items" db=0.7ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Deploy your app the easy way with Sevalla and get $50 in free credits - https://sevalla.com/fireship\n\nAI coding may be overhyped but Model Context Protocols are making it possible for experienced devs to vibe code responsibly. In today's video, we'll look at 7 MCP servers that make programming with AI suck less...\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://svelte.dev/docs/mcp/overview\n- https://www.figma.com/mcp-catalog/\n- https://awslabs.github.io/mcp/\n- https://docs.stripe.com/mcp\n- https://docs.sentry.io/product/sentry-mcp/\n- https://github.com/github/github-mcp-server\n- https://github.com/sooperset/mcp-atlassian\n\n📚 Chapters\n1. Framework optimizers\n2. Design implementers\n3. API executers\n4. Error catchers\n5. QA terminators\n6. Infra scalers\n7. Build your own\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 an MCP server?\n- Vibe coding tips\n- Programming with ai\n- Best MCP servers for developers", "How to make vibe coding not suck…", "eeae6ffe-c7ee-4e3a-89a7-f91db9dc0daa", "https://www.youtube.com/watch?v=PLKrSVuT-Dg", false, "PLKrSVuT-Dg", 36, [], 344, false, 16, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101400_How to make vibe coding not suck….mp4", false, false, 98, ~U[2025-10-14 18:34:41Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Deploy your app the easy way with Sevalla and get $50 in free credits - https://sevalla.com/fireship\n\nAI coding may be overhyped but Model Context Protocols are making it possible for experienced devs to vibe code responsibly. In today's video, we'll look at 7 MCP servers that make programming with AI suck less...\n\n#coding #programming #ai\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://svelte.dev/docs/mcp/overview\n- https://www.figma.com/mcp-catalog/\n- https://awslabs.github.io/mcp/\n- https://docs.stripe.com/mcp\n- https://docs.sentry.io/product/sentry-mcp/\n- https://github.com/github/github-mcp-server\n- https://github.com/sooperset/mcp-atlassian\n\n📚 Chapters\n1. Framework optimizers\n2. Design implementers\n3. API executers\n4. Error catchers\n5. QA terminators\n6. Infra scalers\n7. Build your own\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 an MCP server?\n- Vibe coding tips\n- Programming with ai\n- Best MCP servers for developers", "How to make vibe coding not suck…", "https://www.youtube.com/watch?v=PLKrSVuT-Dg", "PLKrSVuT-Dg", 36, 344, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e101400_How to make vibe coding not suck….mp4", false, ~U[2025-10-14 18:34:41Z]] 20:22:05.921 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.922 [debug] QUERY OK source="media_items" db=1.1ms idle=2.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-07 19:10:52Z], 36] 20:22:05.923 [debug] QUERY OK source="media_items" db=0.6ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nAt OpenAI DevDay 2025, Sam Altman unleashed a flurry of new features that could change the way developers build AI-powered applications. \n\nBut OpenAI's biggest bet is on turning ChatGPT into an app platform or even an operating system that you're completely locked into. Let's take a look...\n\n#openai #chatgpt #ai #coding\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/devday/\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- OpenAI DevDay 2025\n- ChatGPT Apps SDK\n- ChatGPT Agentkit\n- ChatGPT vs n8n\n- Codex Updates\n- GPT-5 Pro\n- Sora 2", "OpenAI just made your entire tech stack obsolete...", "491bdf85-a2f6-4626-8fe7-642c7509532a", "https://www.youtube.com/watch?v=91aH8jsG4cc", false, "91aH8jsG4cc", 36, [], 258, false, 17, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100700_OpenAI just made your entire tech stack obsolete....mp4", false, false, 98, ~U[2025-10-07 19:10:52Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nAt OpenAI DevDay 2025, Sam Altman unleashed a flurry of new features that could change the way developers build AI-powered applications. \n\nBut OpenAI's biggest bet is on turning ChatGPT into an app platform or even an operating system that you're completely locked into. Let's take a look...\n\n#openai #chatgpt #ai #coding\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/devday/\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- OpenAI DevDay 2025\n- ChatGPT Apps SDK\n- ChatGPT Agentkit\n- ChatGPT vs n8n\n- Codex Updates\n- GPT-5 Pro\n- Sora 2", "OpenAI just made your entire tech stack obsolete...", "https://www.youtube.com/watch?v=91aH8jsG4cc", "91aH8jsG4cc", 36, 258, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100700_OpenAI just made your entire tech stack obsolete....mp4", false, ~U[2025-10-07 19:10:52Z]] 20:22:05.923 [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" = ?) [36] 20:22:05.924 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-03 16:02:28Z], 36] 20:22:05.925 [debug] QUERY OK source="media_items" db=0.6ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nAlibaba just announced a $52 billion roadmap towards artificial super intelligence and their ultimate goal of becoming the Android of the AI era. But can the announcements made at Apsara 2025 really put them on the road to ASI? Let's find out...\n\n#ai #tech #alibaba\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.alibabacloud.com/en/apsara-conference\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 Alibaba announced at Apsara 2025\n- How close is Alibaba achieve ASI?\n- Are Alibaba's plans achievable?\n- Qwen 3-Max", "Alibaba is going all in on Qwen…", "7b2ba7fa-9435-4b91-b043-45a6717b69cd", "https://www.youtube.com/watch?v=SquU4Bpc73Y", false, "SquU4Bpc73Y", 36, [], 192, false, 18, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100300_Alibaba is going all in on Qwen….mp4", false, false, 98, ~U[2025-10-03 16:02:28Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Try Brilliant for free - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nAlibaba just announced a $52 billion roadmap towards artificial super intelligence and their ultimate goal of becoming the Android of the AI era. But can the announcements made at Apsara 2025 really put them on the road to ASI? Let's find out...\n\n#ai #tech #alibaba\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://www.alibabacloud.com/en/apsara-conference\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 Alibaba announced at Apsara 2025\n- How close is Alibaba achieve ASI?\n- Are Alibaba's plans achievable?\n- Qwen 3-Max", "Alibaba is going all in on Qwen…", "https://www.youtube.com/watch?v=SquU4Bpc73Y", "SquU4Bpc73Y", 36, 192, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100300_Alibaba is going all in on Qwen….mp4", false, ~U[2025-10-03 16:02:28Z]] 20:22:05.926 [debug] QUERY OK source="sources" db=0.2ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [36] 20:22:05.927 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-01 18:38:26Z], 36] 20:22:05.928 [debug] QUERY OK source="media_items" db=0.8ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try out Blitzy’s codegen platform for enterprise codebases for free - https://blitzy.com\n\nOpenAI's new Sora 2 model is the most accurate, realistic and controllable than anything we've seen before.\n\nIn today's video, we'll take a look at what Sora 2 means video content creators and whether they're about to go the way of the dodo. \n\n#Coding #programming #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/sora-2/\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- OpenAI Sora 2\n- What can Sora 2 do?\n- The future of generative video", "OpenAI’s new slop machine is open for business…", "dc3f1c2b-25e9-4032-be39-bf5301f5fd73", "https://www.youtube.com/watch?v=hkSj-QapfZo", false, "hkSj-QapfZo", 36, [], 222, false, 19, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100100_OpenAI’s new slop machine is open for business….mp4", false, false, 98, ~U[2025-10-01 18:38:26Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Try out Blitzy’s codegen platform for enterprise codebases for free - https://blitzy.com\n\nOpenAI's new Sora 2 model is the most accurate, realistic and controllable than anything we've seen before.\n\nIn today's video, we'll take a look at what Sora 2 means video content creators and whether they're about to go the way of the dodo. \n\n#Coding #programming #tech \n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://openai.com/index/sora-2/\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- OpenAI Sora 2\n- What can Sora 2 do?\n- The future of generative video", "OpenAI’s new slop machine is open for business…", "https://www.youtube.com/watch?v=hkSj-QapfZo", "hkSj-QapfZo", 36, 222, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e100100_OpenAI’s new slop machine is open for business….mp4", false, ~U[2025-10-01 18:38:26Z]] 20:22:05.928 [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" = ?) [36] 20:22:05.929 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-29 18:11:47Z], 36] 20:22:05.968 [debug] QUERY OK source="media_items" db=38.5ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get up to 67% off VPS at Hostinger to self-host your own automations. Use code FIRESHIP for an extra discount at https://hostinger.com/fireshipn8n\n\nAs programmers, we have the unique ability to prevent lost time through automation but it's often difficult and expensive to pull off.\n\nBut in today's video we'll look at how an open-source project called n8n could change the way you think about automating work forever. \n\n#coding #programming #codereport\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://n8n.io/\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 n8n?\n- Automation software\n- n8n vs Zapier\n- Crazy ways to use n8n\n- n8n Linux VPS install", "n8n will change your life as a developer...", "dca984fd-f311-4fe9-95be-943807452c4d", "https://www.youtube.com/watch?v=bS9R6aCVEzw", false, "bS9R6aCVEzw", 36, [], 355, false, 20, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e092900_n8n will change your life as a developer....mp4", false, false, 98, ~U[2025-09-29 18:11:47Z], ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], "Get up to 67% off VPS at Hostinger to self-host your own automations. Use code FIRESHIP for an extra discount at https://hostinger.com/fireshipn8n\n\nAs programmers, we have the unique ability to prevent lost time through automation but it's often difficult and expensive to pull off.\n\nBut in today's video we'll look at how an open-source project called n8n could change the way you think about automating work forever. \n\n#coding #programming #codereport\n\n💬 Chat with Me on Discord\n\nhttps://discord.gg/fireship\n\n🔗 Resources\n- https://n8n.io/\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 n8n?\n- Automation software\n- n8n vs Zapier\n- Crazy ways to use n8n\n- n8n Linux VPS install", "n8n will change your life as a developer...", "https://www.youtube.com/watch?v=bS9R6aCVEzw", "bS9R6aCVEzw", 36, 355, false, "/downloads/chris/tubes/Fireship_[UCsBjURrPoezykLs9EqgamOA]/Season 2025/s2025e092900_n8n will change your life as a developer....mp4", false, ~U[2025-09-29 18:11:47Z]] 20:22:05.972 [debug] QUERY OK source="sources" db=3.7ms idle=41.6ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z], 36] 20:22:05.974 [debug] QUERY OK source="media_items" db=1.5ms idle=44.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")))) [36] 20:22:05.975 [debug] QUERY OK source="media_items" db=1.1ms idle=46.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")))) [36] 20:22:05.975 [debug] QUERY OK source="media_items" db=0.2ms idle=46.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [36] 20:22:05.977 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88164, 36, ~U[2026-01-01 02:22:05Z], ~U[2026-01-01 02:22:05Z]] 20:22:05.977 [info] {"args":{"id":36},"id":88112,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":43950016,"event":"job:stop","queue_time":724752,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:22:17.750 [info] {"source":"oban","duration":3582,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:22:47.753 [info] {"source":"oban","duration":3493,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:23:00.908 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:23:17.758 [info] {"source":"oban","duration":3672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:23:47.762 [info] {"source":"oban","duration":3905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:24:00.910 [info] {"source":"oban","duration":317,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:24:17.767 [info] {"source":"oban","duration":4022,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:24:47.771 [info] {"source":"oban","duration":2737,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:25:00.910 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:25:17.773 [info] {"source":"oban","duration":2435,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 20:25:47.777 [info] {"source":"oban","duration":3425,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:26:00.911 [info] {"source":"oban","duration":133,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:26:17.781 [info] {"source":"oban","duration":2607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:26:47.785 [info] {"source":"oban","duration":3779,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:27:00.913 [info] {"source":"oban","duration":367,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:27:17.788 [info] {"source":"oban","duration":2671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:27:47.793 [info] {"source":"oban","duration":3763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:28:00.915 [info] {"source":"oban","duration":436,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:28:17.796 [info] {"source":"oban","duration":3396,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:28:47.800 [info] {"source":"oban","duration":2748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:29:00.916 [info] {"source":"oban","duration":305,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:29:17.803 [info] {"source":"oban","duration":3371,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:29:45.737 [info] {"args":{"id":51},"id":88162,"meta":{},"system_time":1767234585737100533,"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"]} 20:29:45.737 [debug] QUERY OK source="sources" db=0.1ms idle=390.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:29:45.737 [debug] QUERY OK source="settings" db=0.3ms idle=390.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:29:45.738 [debug] QUERY OK source="media_profiles" db=0.3ms idle=391.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:29:45.738 [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 [] 20:29:45.738 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 20:29:45.963 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:29:45.964 [debug] QUERY OK source="media_items" db=0.3ms idle=226.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" = ?) AND m0."media_id" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [51, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:29:45.964 [debug] QUERY OK source="media_items" db=0.3ms idle=227.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")))) [51] 20:29:45.965 [debug] QUERY OK source="tasks" db=0.1ms idle=226.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88165, 51, ~U[2026-01-01 02:29:45Z], ~U[2026-01-01 02:29:45Z]] 20:29:45.965 [info] {"args":{"id":51},"id":88162,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":228571,"event":"job:stop","queue_time":553356,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 20:29:47.808 [info] {"source":"oban","duration":3309,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:30:00.916 [info] {"source":"oban","duration":151,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:30:17.811 [info] {"source":"oban","duration":3415,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:30:47.814 [info] {"source":"oban","duration":2420,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:31:00.917 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:31:17.819 [info] {"source":"oban","duration":3948,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:31:47.824 [info] {"source":"oban","duration":3926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:32:00.918 [info] {"source":"oban","duration":269,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:32:17.828 [info] {"source":"oban","duration":3447,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:32:47.831 [info] {"source":"oban","duration":2216,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:33:00.919 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:33:17.835 [info] {"source":"oban","duration":2586,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:33:47.839 [info] {"source":"oban","duration":2524,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:00.921 [info] {"source":"oban","duration":311,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:34:17.842 [info] {"source":"oban","duration":2969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:46.235 [info] {"args":{"id":43},"id":88145,"meta":{},"system_time":1767234886235315326,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:34:46.235 [debug] QUERY OK source="sources" db=0.3ms idle=888.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:34:46.236 [debug] QUERY OK source="settings" db=0.3ms idle=889.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:34:46.239 [debug] QUERY OK source="media_items" db=3.0ms idle=889.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")))) [43] 20:34:46.240 [debug] QUERY OK source="media_items" db=0.4ms idle=11.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 20:34:46.240 [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] 20:34:46.240 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:34:46.240 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:34:46.243 [debug] QUERY OK source="media_items" db=1.2ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [43] 20:34:46.244 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:34:46.244 [debug] Current batch of media processed. Will check again in 1000ms 20:34:46.244 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:34:46.245 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:34:46.245 [debug] QUERY OK source="settings" db=0.0ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:34:46.245 [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/c0/04/c004659566d15f3eff63883b31bdf4f0b272524fbb5381f4316701ca485e5c86.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/bd/2a/bd2a14d45292d5d55469f2169c6b9b4f6a3fa356fa8cca7070f4a8443107be86.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:34:47.245 [debug] Current batch of media processed. Will check again in 1000ms 20:34:47.847 [info] {"source":"oban","duration":3970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:48.246 [debug] Current batch of media processed. Will check again in 1000ms 20:34:49.247 [debug] Current batch of media processed. Will check again in 1000ms 20:34:50.248 [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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "duration" => 1514, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", "id" => "jlz6xAk85hY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jlz6xAk85hY", "playlist_index" => 1, "timestamp" => 1766830551, "title" => "New package manager for portable apps & other Linux Weekly News", "upload_date" => "20251227"} 20:34:50.249 [debug] QUERY OK source="sources" db=0.4ms idle=902.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:34:50.250 [debug] QUERY OK source="sources" db=0.0ms idle=903.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:34:50.253 [debug] QUERY OK source="media_items" db=2.7ms idle=903.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-27 10:15:51Z], 43] 20:34:50.254 [debug] QUERY OK source="media_items" db=1.0ms idle=906.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "1fdfa339-36c4-4cb6-b690-c0b74a20ff06", "https://www.youtube.com/watch?v=jlz6xAk85hY", false, "jlz6xAk85hY", 43, [], 1514, false, 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, false, 98, ~U[2025-12-27 10:15:51Z], ~U[2026-01-01 02:34:50Z], ~U[2026-01-01 02:34:50Z], "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "https://www.youtube.com/watch?v=jlz6xAk85hY", "jlz6xAk85hY", 43, 1514, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, ~U[2025-12-27 10:15:51Z]] 20:34:50.254 [debug] QUERY OK source="sources" db=0.1ms idle=19.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:50.255 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:50.255 [debug] QUERY OK source="media_items" db=0.1ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1873433] 20:34:50.255 [debug] Current batch of media processed. Will check again in 1000ms 20:34:51.256 [debug] Current batch of media processed. Will check again in 1000ms 20:34:52.257 [debug] Current batch of media processed. Will check again in 1000ms 20:34:53.258 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "duration" => 1589, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", "id" => "3s83kULBiJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3s83kULBiJ0", "playlist_index" => 2, "timestamp" => 1766486478, "title" => "elementary OS 8.1 is amazing, but still not for everyone", "upload_date" => "20251223"} 20:34:53.258 [debug] QUERY OK source="sources" db=0.1ms idle=1912.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:34:53.259 [debug] QUERY OK source="sources" db=0.1ms idle=1912.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:34:53.262 [debug] QUERY OK source="media_items" db=2.9ms idle=1912.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-23 10:41:18Z], 43] 20:34:53.263 [debug] QUERY OK source="media_items" db=0.8ms idle=1023.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "7a2c3f7c-25a5-4f5e-820a-62cfdc2ff932", "https://www.youtube.com/watch?v=3s83kULBiJ0", false, "3s83kULBiJ0", 43, [], 1589, false, 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, false, 98, ~U[2025-12-23 10:41:18Z], ~U[2026-01-01 02:34:53Z], ~U[2026-01-01 02:34:53Z], "Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "https://www.youtube.com/watch?v=3s83kULBiJ0", "3s83kULBiJ0", 43, 1589, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, ~U[2025-12-23 10:41:18Z]] 20:34:53.264 [debug] QUERY OK source="sources" db=0.5ms idle=23.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:34:53.264 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:53.265 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1841644] 20:34:53.265 [debug] Current batch of media processed. Will check again in 1000ms 20:34:54.265 [debug] Current batch of media processed. Will check again in 1000ms 20:34:55.266 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "duration" => 1426, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", "id" => "dIxcwRdS5n8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dIxcwRdS5n8", "playlist_index" => 3, "timestamp" => 1766227189, "title" => "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "upload_date" => "20251220"} 20:34:55.267 [debug] QUERY OK source="sources" db=0.2ms idle=920.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:34:55.267 [debug] QUERY OK source="sources" db=0.2ms idle=921.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:34:55.271 [debug] QUERY OK source="media_items" db=3.1ms idle=921.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-20 10:39:49Z], 43] 20:34:55.272 [debug] QUERY OK source="media_items" db=1.2ms idle=924.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "be2d8d83-0b6d-4010-9cfc-014b23e5bf18", "https://www.youtube.com/watch?v=dIxcwRdS5n8", false, "dIxcwRdS5n8", 43, [], 1426, false, 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-20 10:39:49Z], ~U[2026-01-01 02:34:55Z], ~U[2026-01-01 02:34:55Z], "Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "https://www.youtube.com/watch?v=dIxcwRdS5n8", "dIxcwRdS5n8", 43, 1426, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, ~U[2025-12-20 10:39:49Z]] 20:34:55.273 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:55.273 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:55.273 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1817767] 20:34:55.273 [debug] Current batch of media processed. Will check again in 1000ms 20:34:56.274 [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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "duration" => 530, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", "id" => "WtNb425nJT4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WtNb425nJT4", "playlist_index" => 4, "timestamp" => 1766134446, "title" => "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "upload_date" => "20251219"} 20:34:56.275 [debug] QUERY OK source="sources" db=0.2ms idle=1002.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:34:56.275 [debug] QUERY OK source="sources" db=0.1ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:56.278 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-19 08:54:06Z], 43] 20:34:56.279 [debug] QUERY OK source="media_items" db=0.7ms idle=1004.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "cfb78b0e-c737-4583-bad5-1371ec8d49a7", "https://www.youtube.com/watch?v=WtNb425nJT4", false, "WtNb425nJT4", 43, [], 530, false, 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, false, 98, ~U[2025-12-19 08:54:06Z], ~U[2026-01-01 02:34:56Z], ~U[2026-01-01 02:34:56Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "https://www.youtube.com/watch?v=WtNb425nJT4", "WtNb425nJT4", 43, 530, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, ~U[2025-12-19 08:54:06Z]] 20:34:56.279 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:56.280 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:56.280 [debug] QUERY OK source="media_items" db=0.1ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1808956] 20:34:56.280 [info] Kicking off download for media item #1808956 (WtNb425nJT4) 20:34:56.281 [debug] Current batch of media processed. Will check again in 1000ms 20:34:57.282 [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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "duration" => 523, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", "id" => "rGqKAmDdmXM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rGqKAmDdmXM", "playlist_index" => 5, "timestamp" => 1766047170, "title" => "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "upload_date" => "20251218"} 20:34:57.283 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:34:57.283 [debug] QUERY OK source="sources" db=0.0ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:57.286 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.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-18 08:39:30Z], 43] 20:34:57.287 [debug] QUERY OK source="media_items" db=0.6ms idle=1005.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "0ef9d4dd-0327-412c-ad8c-3be2978db88e", "https://www.youtube.com/watch?v=rGqKAmDdmXM", false, "rGqKAmDdmXM", 43, [], 523, false, 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, false, 98, ~U[2025-12-18 08:39:30Z], ~U[2026-01-01 02:34:57Z], ~U[2026-01-01 02:34: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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "https://www.youtube.com/watch?v=rGqKAmDdmXM", "rGqKAmDdmXM", 43, 523, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, ~U[2025-12-18 08:39:30Z]] 20:34:57.287 [debug] QUERY OK source="sources" db=0.1ms idle=39.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:34:57.287 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:57.288 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1801607] 20:34:57.288 [info] Kicking off download for media item #1801607 (rGqKAmDdmXM) 20:34:57.289 [debug] Current batch of media processed. Will check again in 1000ms 20:34:58.290 [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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "duration" => 634, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", "id" => "ukEIVoB7ycc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ukEIVoB7ycc", "playlist_index" => 6, "timestamp" => 1765962222, "title" => "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "upload_date" => "20251217"} 20:34:58.291 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:34:58.291 [debug] QUERY OK source="sources" db=0.1ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:58.294 [debug] QUERY OK source="media_items" db=3.1ms idle=1003.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-17 09:03:42Z], 43] 20:34:58.295 [debug] QUERY OK source="media_items" db=0.6ms idle=1005.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "4857d06e-16df-455d-b20e-9c8ab6d6dd41", "https://www.youtube.com/watch?v=ukEIVoB7ycc", false, "ukEIVoB7ycc", 43, [], 634, false, 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, false, 98, ~U[2025-12-17 09:03:42Z], ~U[2026-01-01 02:34:58Z], ~U[2026-01-01 02:34:58Z], "👕 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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "https://www.youtube.com/watch?v=ukEIVoB7ycc", "ukEIVoB7ycc", 43, 634, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, ~U[2025-12-17 09:03:42Z]] 20:34:58.296 [debug] QUERY OK source="sources" db=0.1ms idle=44.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:34:58.296 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:58.296 [debug] QUERY OK source="media_items" db=0.1ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1793703] 20:34:58.296 [info] Kicking off download for media item #1793703 (ukEIVoB7ycc) 20:34:58.298 [debug] Current batch of media processed. Will check again in 1000ms 20:34:59.298 [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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "duration" => 590, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", "id" => "hR2qvY64i-s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hR2qvY64i-s", "playlist_index" => 7, "timestamp" => 1765875787, "title" => "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "upload_date" => "20251216"} 20:34:59.299 [debug] QUERY OK source="sources" db=0.2ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:34:59.299 [debug] QUERY OK source="sources" db=0.2ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:59.303 [debug] QUERY OK source="media_items" db=3.0ms idle=1003.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-16 09:03:07Z], 43] 20:34:59.304 [debug] QUERY OK source="media_items" db=0.7ms idle=1005.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "e6f930f1-d2d2-446a-9566-2677210e7bd3", "https://www.youtube.com/watch?v=hR2qvY64i-s", false, "hR2qvY64i-s", 43, [], 590, false, 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, false, 98, ~U[2025-12-16 09:03:07Z], ~U[2026-01-01 02:34:59Z], ~U[2026-01-01 02:34:59Z], "👕 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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "https://www.youtube.com/watch?v=hR2qvY64i-s", "hR2qvY64i-s", 43, 590, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, ~U[2025-12-16 09:03:07Z]] 20:34:59.304 [debug] QUERY OK source="sources" db=0.1ms idle=51.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:34:59.304 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:34:59.305 [debug] QUERY OK source="media_items" db=0.1ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1785671] 20:34:59.305 [info] Kicking off download for media item #1785671 (hR2qvY64i-s) 20:34:59.305 [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 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "duration" => 1284, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", "id" => "koT46u0nB_E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=koT46u0nB_E", "playlist_index" => 8, "timestamp" => 1765793487, "title" => "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "upload_date" => "20251215"} 20:34:59.306 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:34:59.306 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:59.308 [debug] QUERY OK source="media_items" db=2.4ms idle=1.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 10:11:27Z], 43] 20:34:59.309 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "e3788594-8c70-4d43-aca9-b4b1bcbced31", "https://www.youtube.com/watch?v=koT46u0nB_E", false, "koT46u0nB_E", 43, [], 1284, false, 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, false, 97, ~U[2025-12-15 10:11:27Z], ~U[2026-01-01 02:34:59Z], ~U[2026-01-01 02:34:59Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "https://www.youtube.com/watch?v=koT46u0nB_E", "koT46u0nB_E", 43, 1284, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, ~U[2025-12-15 10:11:27Z]] 20:34:59.310 [debug] QUERY OK source="sources" db=0.1ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:34:59.310 [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] 20:34:59.310 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1777966] 20:34:59.310 [info] Kicking off download for media item #1777966 (koT46u0nB_E) 20:34:59.311 [debug] Current batch of media processed. Will check again in 1000ms 20:35:00.312 [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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "duration" => 462, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", "id" => "DkBgwsHQoDc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DkBgwsHQoDc", "playlist_index" => 9, "timestamp" => 1765790894, "title" => "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "upload_date" => "20251215"} 20:35:00.313 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:00.313 [debug] QUERY OK source="sources" db=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:00.316 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.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-15 09:28:14Z], 43] 20:35:00.317 [debug] QUERY OK source="media_items" db=0.5ms idle=1004.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "5c636b3f-bdee-4384-83db-2dd5ad01895e", "https://www.youtube.com/watch?v=DkBgwsHQoDc", false, "DkBgwsHQoDc", 43, [], 462, false, 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, false, 97, ~U[2025-12-15 09:28:14Z], ~U[2026-01-01 02:35:00Z], ~U[2026-01-01 02:35:00Z], "👕 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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "https://www.youtube.com/watch?v=DkBgwsHQoDc", "DkBgwsHQoDc", 43, 462, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, ~U[2025-12-15 09:28:14Z]] 20:35:00.317 [debug] QUERY OK source="sources" db=0.1ms idle=63.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:00.317 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:00.318 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1777967] 20:35:00.318 [info] Kicking off download for media item #1777967 (DkBgwsHQoDc) 20:35:00.319 [debug] Current batch of media processed. Will check again in 1000ms 20:35:00.922 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:35:01.320 [debug] Current batch of media processed. Will check again in 1000ms 20:35:02.321 [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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "duration" => 1591, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", "id" => "6gusWDr1Qw0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6gusWDr1Qw0", "playlist_index" => 10, "timestamp" => 1765623685, "title" => "New Linux smartphone & Other Linux News", "upload_date" => "20251213"} 20:35:02.322 [debug] QUERY OK source="sources" db=0.1ms idle=1066.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:35:02.322 [debug] QUERY OK source="sources" db=0.1ms idle=975.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:35:02.325 [debug] QUERY OK source="media_items" db=2.8ms idle=976.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-13 11:01:25Z], 43] 20:35:02.326 [debug] QUERY OK source="media_items" db=1.0ms idle=979.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "f5f10425-78e7-4ac8-acdf-ac4d49852e8f", "https://www.youtube.com/watch?v=6gusWDr1Qw0", false, "6gusWDr1Qw0", 43, [], 1591, false, 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, false, 98, ~U[2025-12-13 11:01:25Z], ~U[2026-01-01 02:35:02Z], ~U[2026-01-01 02:35:02Z], "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "https://www.youtube.com/watch?v=6gusWDr1Qw0", "6gusWDr1Qw0", 43, 1591, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, ~U[2025-12-13 11:01:25Z]] 20:35:02.327 [debug] QUERY OK source="sources" db=0.2ms idle=71.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:35:02.327 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:02.328 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1762357] 20:35:02.328 [debug] Current batch of media processed. Will check again in 1000ms 20:35:03.328 [debug] Current batch of media processed. Will check again in 1000ms 20:35:04.329 [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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "duration" => 651, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", "id" => "JWQbGDLlcyw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JWQbGDLlcyw", "playlist_index" => 11, "timestamp" => 1765532012, "title" => "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "upload_date" => "20251212"} 20:35:04.329 [debug] QUERY OK source="sources" db=0.1ms idle=983.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:35:04.330 [debug] QUERY OK source="sources" db=0.0ms idle=983.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:35:04.333 [debug] QUERY OK source="media_items" db=2.8ms idle=983.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-12 09:33:32Z], 43] 20:35:04.334 [debug] QUERY OK source="media_items" db=0.6ms idle=986.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "069f92c6-fba5-4828-a232-6166979594e8", "https://www.youtube.com/watch?v=JWQbGDLlcyw", false, "JWQbGDLlcyw", 43, [], 651, false, 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, false, 98, ~U[2025-12-12 09:33:32Z], ~U[2026-01-01 02:35:04Z], ~U[2026-01-01 02:35: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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "https://www.youtube.com/watch?v=JWQbGDLlcyw", "JWQbGDLlcyw", 43, 651, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, ~U[2025-12-12 09:33:32Z]] 20:35:04.334 [debug] QUERY OK source="sources" db=0.1ms idle=73.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:35:04.334 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:04.334 [debug] QUERY OK source="media_items" db=0.1ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1753967] 20:35:04.334 [info] Kicking off download for media item #1753967 (JWQbGDLlcyw) 20:35:04.336 [debug] Current batch of media processed. Will check again in 1000ms 20:35:05.337 [debug] Current batch of media processed. Will check again in 1000ms 20:35:06.338 [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\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 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "duration" => 1884, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", "id" => "ob-Y77kuVwM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ob-Y77kuVwM", "playlist_index" => 12, "timestamp" => 1765466627, "title" => "Cosmic a great Linux desktop, but still limited", "upload_date" => "20251211"} 20:35:06.339 [debug] QUERY OK source="sources" db=0.2ms idle=992.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:06.339 [debug] QUERY OK source="sources" db=0.2ms idle=992.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:35:06.342 [debug] QUERY OK source="media_items" db=2.7ms idle=993.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-11 15:23:47Z], 43] 20:35:06.343 [debug] QUERY OK source="media_items" db=0.6ms idle=996.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "993df9d9-1ad3-469a-8094-c151bf26bae1", "https://www.youtube.com/watch?v=ob-Y77kuVwM", false, "ob-Y77kuVwM", 43, [], 1884, false, 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, false, 97, ~U[2025-12-11 15:23:47Z], ~U[2026-01-01 02:35:06Z], ~U[2026-01-01 02:35:06Z], "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "https://www.youtube.com/watch?v=ob-Y77kuVwM", "ob-Y77kuVwM", 43, 1884, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, ~U[2025-12-11 15:23:47Z]] 20:35:06.343 [debug] QUERY OK source="sources" db=0.1ms idle=80.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:06.344 [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] 20:35:06.344 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1748262] 20:35:06.344 [debug] Current batch of media processed. Will check again in 1000ms 20:35:07.345 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "duration" => 540, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", "id" => "AhM3Pxq_ycM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AhM3Pxq_ycM", "playlist_index" => 13, "timestamp" => 1765449034, "title" => "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "upload_date" => "20251211"} 20:35:07.346 [debug] QUERY OK source="sources" db=0.2ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:07.346 [debug] QUERY OK source="sources" db=0.2ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:07.350 [debug] QUERY OK source="media_items" db=3.0ms idle=81.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 10:30:34Z], 43] 20:35:07.351 [debug] QUERY OK source="media_items" db=0.7ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "3a63ce4c-61fb-4c76-b122-3fc2063dd099", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", false, "AhM3Pxq_ycM", 43, [], 540, false, 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, false, 97, ~U[2025-12-11 10:30:34Z], ~U[2026-01-01 02:35:07Z], ~U[2026-01-01 02:35:07Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", "AhM3Pxq_ycM", 43, 540, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, ~U[2025-12-11 10:30:34Z]] 20:35:07.351 [debug] QUERY OK source="sources" db=0.1ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:07.351 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:07.351 [debug] QUERY OK source="media_items" db=0.1ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1746368] 20:35:07.351 [info] Kicking off download for media item #1746368 (AhM3Pxq_ycM) 20:35:07.353 [debug] Current batch of media processed. Will check again in 1000ms 20:35:08.353 [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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "duration" => 610, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", "id" => "9XUHYL7-XtE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9XUHYL7-XtE", "playlist_index" => 14, "timestamp" => 1765358499, "title" => "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "upload_date" => "20251210"} 20:35:08.354 [debug] QUERY OK source="sources" db=0.2ms idle=1002.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:08.354 [debug] QUERY OK source="sources" db=0.0ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:08.357 [debug] QUERY OK source="media_items" db=2.8ms idle=1002.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 09:21:39Z], 43] 20:35:08.358 [debug] QUERY OK source="media_items" db=0.7ms idle=1004.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "7a8397e7-b303-4fca-8548-347907b9c659", "https://www.youtube.com/watch?v=9XUHYL7-XtE", false, "9XUHYL7-XtE", 43, [], 610, false, 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, false, 98, ~U[2025-12-10 09:21:39Z], ~U[2026-01-01 02:35:08Z], ~U[2026-01-01 02:35:08Z], "👕 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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "https://www.youtube.com/watch?v=9XUHYL7-XtE", "9XUHYL7-XtE", 43, 610, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, ~U[2025-12-10 09:21:39Z]] 20:35:08.358 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [43] 20:35:08.359 [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] 20:35:08.359 [debug] QUERY OK source="media_items" db=0.1ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1738094] 20:35:08.359 [info] Kicking off download for media item #1738094 (9XUHYL7-XtE) 20:35:08.360 [debug] Current batch of media processed. Will check again in 1000ms 20:35:09.361 [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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "duration" => 717, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", "id" => "88ioofbr4BY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=88ioofbr4BY", "playlist_index" => 15, "timestamp" => 1765277167, "title" => "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "upload_date" => "20251209"} 20:35:09.361 [debug] QUERY OK source="sources" db=0.1ms idle=1003.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:09.362 [debug] QUERY OK source="sources" db=0.2ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:09.365 [debug] QUERY OK source="media_items" db=2.9ms idle=1003.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-09 10:46:07Z], 43] 20:35:09.366 [debug] QUERY OK source="media_items" db=0.6ms idle=1004.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "1b0c6b5a-2694-4ff0-b474-d4ef410c6fa6", "https://www.youtube.com/watch?v=88ioofbr4BY", false, "88ioofbr4BY", 43, [], 717, false, 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, false, 98, ~U[2025-12-09 10:46:07Z], ~U[2026-01-01 02:35:09Z], ~U[2026-01-01 02:35:09Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "https://www.youtube.com/watch?v=88ioofbr4BY", "88ioofbr4BY", 43, 717, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, ~U[2025-12-09 10:46:07Z]] 20:35:09.366 [debug] QUERY OK source="sources" db=0.1ms idle=97.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:35:09.367 [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] 20:35:09.367 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1730841] 20:35:09.367 [info] Kicking off download for media item #1730841 (88ioofbr4BY) 20:35:09.368 [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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "duration" => 863, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", "id" => "-tKROWIsGRk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-tKROWIsGRk", "playlist_index" => 16, "timestamp" => 1765188052, "title" => "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "upload_date" => "20251208"} 20:35:09.368 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:09.369 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:09.371 [debug] QUERY OK source="media_items" db=2.6ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 10:00:52Z], 43] 20:35:09.374 [debug] QUERY OK source="media_items" db=2.3ms idle=4.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "48a7cd43-dc87-4384-9da9-58311a741056", "https://www.youtube.com/watch?v=-tKROWIsGRk", false, "-tKROWIsGRk", 43, [], 863, false, 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, false, 97, ~U[2025-12-08 10:00:52Z], ~U[2026-01-01 02:35:09Z], ~U[2026-01-01 02:35:09Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "https://www.youtube.com/watch?v=-tKROWIsGRk", "-tKROWIsGRk", 43, 863, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, ~U[2025-12-08 10:00:52Z]] 20:35:09.374 [debug] QUERY OK source="sources" db=0.1ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:09.375 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:09.375 [debug] QUERY OK source="media_items" db=0.1ms 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 [1722376] 20:35:09.375 [info] Kicking off download for media item #1722376 (-tKROWIsGRk) 20:35:09.376 [debug] Current batch of media processed. Will check again in 1000ms 20:35:10.377 [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" => 1108, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", "id" => "JrfgeYskCZw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JrfgeYskCZw", "playlist_index" => 17, "timestamp" => 1765180354, "title" => "Patroncast S05E46 - Fixing my mess of an online ecosystem", "upload_date" => "20251208"} 20:35:10.378 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:10.379 [debug] QUERY OK source="sources" db=0.1ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:10.382 [debug] QUERY OK source="media_items" db=3.0ms idle=1003.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 07:52:34Z], 43] 20:35:10.383 [debug] QUERY OK source="media_items" db=0.4ms idle=1006.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "06285318-df00-421e-8e3f-f8945e7b4684", "https://www.youtube.com/watch?v=JrfgeYskCZw", false, "JrfgeYskCZw", 43, [], 1108, false, 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, false, 97, ~U[2025-12-08 07:52:34Z], ~U[2026-01-01 02:35:10Z], ~U[2026-01-01 02:35:10Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "https://www.youtube.com/watch?v=JrfgeYskCZw", "JrfgeYskCZw", 43, 1108, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, ~U[2025-12-08 07:52:34Z]] 20:35:10.383 [debug] QUERY OK source="sources" db=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" = ?) [43] 20:35:10.383 [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] 20:35:10.383 [debug] QUERY OK source="media_items" db=0.1ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1721755] 20:35:10.384 [info] Kicking off download for media item #1721755 (JrfgeYskCZw) 20:35:10.385 [debug] Current batch of media processed. Will check again in 1000ms 20:35:11.385 [debug] Current batch of media processed. Will check again in 1000ms 20:35:12.386 [debug] Current batch of media processed. Will check again in 1000ms 20:35:13.388 [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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "duration" => 1495, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", "id" => "iKzJAgDopVI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iKzJAgDopVI", "playlist_index" => 18, "timestamp" => 1765019658, "title" => "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "upload_date" => "20251206"} 20:35:13.388 [debug] QUERY OK source="sources" db=0.2ms idle=1042.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:35:13.389 [debug] QUERY OK source="sources" db=0.1ms idle=1042.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:35:13.392 [debug] QUERY OK source="media_items" db=2.7ms idle=1042.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-06 11:14:18Z], 43] 20:35:13.393 [debug] QUERY OK source="media_items" db=1.0ms idle=1045.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "6e48d4d5-ad77-4b81-9fcb-d21622446bac", "https://www.youtube.com/watch?v=iKzJAgDopVI", false, "iKzJAgDopVI", 43, [], 1495, false, 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-06 11:14:18Z], ~U[2026-01-01 02:35:13Z], ~U[2026-01-01 02:35:13Z], "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "https://www.youtube.com/watch?v=iKzJAgDopVI", "iKzJAgDopVI", 43, 1495, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, ~U[2025-12-06 11:14:18Z]] 20:35:13.393 [debug] QUERY OK source="sources" db=0.1ms idle=119.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:35:13.394 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:13.394 [debug] QUERY OK source="media_items" db=0.1ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1707538] 20:35:13.394 [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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "duration" => 553, "filename" => "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", "id" => "JISz0WG7Sos", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JISz0WG7Sos", "playlist_index" => 19, "timestamp" => 1764925354, "title" => "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "upload_date" => "20251205"} 20:35:13.395 [debug] QUERY OK source="sources" db=0.4ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 20:35:13.395 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:13.398 [debug] QUERY OK source="media_items" db=2.5ms idle=1.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-05 09:02:34Z], 43] 20:35:13.399 [debug] QUERY OK source="media_items" db=0.7ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "32a5381f-7fb6-457d-9b0d-9814af1fab7d", "https://www.youtube.com/watch?v=JISz0WG7Sos", false, "JISz0WG7Sos", 43, [], 553, false, 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, false, 98, ~U[2025-12-05 09:02:34Z], ~U[2026-01-01 02:35:13Z], ~U[2026-01-01 02:35:13Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "https://www.youtube.com/watch?v=JISz0WG7Sos", "JISz0WG7Sos", 43, 553, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, ~U[2025-12-05 09:02:34Z]] 20:35:13.399 [debug] QUERY OK source="sources" db=0.1ms idle=4.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:13.399 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:13.399 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1698511] 20:35:13.399 [info] Kicking off download for media item #1698511 (JISz0WG7Sos) 20:35:13.400 [debug] Current batch of media processed. Will check again in 1000ms 20:35:14.204 [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/c0/04/c004659566d15f3eff63883b31bdf4f0b272524fbb5381f4316701ca485e5c86.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/bd/2a/bd2a14d45292d5d55469f2169c6b9b4f6a3fa356fa8cca7070f4a8443107be86.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:35:14.205 [debug] Gracefully stopping file follower 20:35:14.205 [debug] QUERY OK source="sources" db=0.2ms idle=806.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:35:14.205 [debug] QUERY OK source="sources" db=0.1ms idle=806.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:35:14.208 [debug] QUERY OK source="media_items" db=2.8ms idle=806.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 10:15:51Z], 43] 20:35:14.210 [debug] QUERY OK source="media_items" db=1.0ms idle=809.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "f943ae9c-b3db-4374-9700-0c755fff3ea1", "https://www.youtube.com/watch?v=jlz6xAk85hY", false, "jlz6xAk85hY", 43, [], 1514, false, 1, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, false, 98, ~U[2025-12-27 10:15:51Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "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\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:51 Sponsor: Proton Mail\n01:40 Brand new X11 server in the works\n04:36 New packaging solution for portable apps\n08:10 Steam Deck LCD is discontinued\n10:11 Linux Foundation publishes annual report\n12:58 elementary OS 8.1 released\n15:57 Older AMD GPUs get 30% performance boost\n17:41 CachyOS looks at the server now\n20:09 Italy fines Apple for their privacy framework\n23:24 Sponsor: Tuxedo Computers\n\n\nLinks:\n\nBrand new X11 server in the works\nhttps://git.dec05eba.com/phoenix/tree/README.md\nhttps://linuxiac.com/phoenix-emerges-as-a-modern-x-server-written-from-scratch-in-zig/\n\nNew packaging solution for portable apps\nhttps://itsfoss.com/pkgforge/\n\nSteam Deck LCD is discontinued\nhttps://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/\n\nLinux Foundation publishes annual report\nhttps://linuxiac.com/the-linux-foundation-spent-8-4-million-on-the-linux-kernel-project-in-2025/\n\nelementary OS 8.1 released\nhttps://blog.elementary.io/os-8-1-available-now/\n\nOlder AMD GPUs get 30% performance boost\nhttps://www.phoronix.com/review/linux-619-amdgpu-radeon/5\n\nCachyOS looks at the server now\nhttps://cachyos.org/blog/2025-christmas-new-year/\n\nItaly fines Apple for their privacy framework\nhttps://www.bleepingcomputer.com/news/security/italy-fines-apple-116-million-over-app-store-tracking-privacy-practices/", "New package manager for portable apps & other Linux Weekly News", "https://www.youtube.com/watch?v=jlz6xAk85hY", "jlz6xAk85hY", 43, 1514, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122700_New package manager for portable apps & other Linux Weekly News.mp4", false, ~U[2025-12-27 10:15:51Z]] 20:35:14.210 [debug] QUERY OK source="sources" db=0.1ms idle=809.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:35:14.213 [debug] QUERY OK source="media_items" db=2.6ms 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 10:41:18Z], 43] 20:35:14.214 [debug] QUERY OK source="media_items" db=1.0ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "4ffb7bfb-9b8e-4b09-b033-9c010b1850e8", "https://www.youtube.com/watch?v=3s83kULBiJ0", false, "3s83kULBiJ0", 43, [], 1589, false, 2, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, false, 98, ~U[2025-12-23 10:41:18Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "Try TuxCare's Endless Lifecycle Support for your entire FOSS stack: https://tuxcare.com/endless-lifecycle-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social https://tuxcare.com/blog/extended-lifecycle-support-and-kernelcare-solutions-at-sc25/\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:33 Sponsor: TuxCare\n02:03 Wayland by default\n07:46 AppCenter\n11:55 Visual Updates\n13:47 New Apps & updates\n18:47 Settings\n21:22 Accessibility\n22:54 Parting Thoughts", "elementary OS 8.1 is amazing, but still not for everyone", "https://www.youtube.com/watch?v=3s83kULBiJ0", "3s83kULBiJ0", 43, 1589, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122300_elementary OS 8.1 is amazing, but still not for everyone.mp4", false, ~U[2025-12-23 10:41:18Z]] 20:35:14.215 [debug] QUERY OK source="sources" db=0.4ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.217 [debug] QUERY OK source="media_items" db=2.4ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-20 10:39:49Z], 43] 20:35:14.219 [debug] QUERY OK source="media_items" db=1.1ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "501adb1f-33a4-430c-898c-8609e776f058", "https://www.youtube.com/watch?v=dIxcwRdS5n8", false, "dIxcwRdS5n8", 43, [], 1426, false, 3, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-20 10:39:49Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "Try TuxCare's Endless Lifecycle Support for Debian 10: https://tuxcare.com/endless-lifecycle-support/debian-eol-support/?utm_campaign=The%20Linux%20Experiment&utm_source=youtube&utm_medium=social\n\nGrab a brand new laptop or desktop running Linux: https://www.tuxedocomputers.com/en#\n\n\n👏 SUPPORT THE CHANNEL:\nGet access to:\n- a Daily Linux News show\n- a weekly patroncast for more thoughts\n- your name in the credits\n\nYouTube: https://www.youtube.com/@TheLinuxEXP/join\nPatreon: https://www.patreon.com/thelinuxexperiment\n\nOr, you can donate whatever you want:\nhttps://paypal.me/thelinuxexp\nLiberapay: https://liberapay.com/TheLinuxExperiment/\n\n👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps\n\n00:00 Intro\n00:30 Sponsor: TuxCare\n01:53 Firefox will become an AI browser & makes all the mistakes\n07:01 Servo making progress\n08:19 Plasma 6.6 will fix some big Wayland issues\n09:48 Wayland protocols updated for better HDR\n10:51 GNOME bans AI from extensions\n13:00 Rust no longer experimental in Linux kernel\n14:21 Mint 22.3 beta released\n15:59 Website lets you scan Snaps for vulnerabilities\n18:19 Danish admin plans move to Linux\n20:17 NVK gets a huge performance boost\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nPlasma 6.6 will fix some big Wayland issues\nhttps://blogs.kde.org/2025/12/13/this-week-in-plasma-wayland-screen-mirroring-and-custom-modes/\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nGNOME bans AI from extensions\nhttps://blogs.gnome.org/jrahmatzadeh/2025/12/06/ai-and-gnome-shell-extensions/\nhttps://gjs.guide/extensions/review-guidelines/review-guidelines.html\n\nRust no longer experimental in Linux kernel\nhttps://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\n\n#linuxdesktop #linuxdistro #technews", "Firefox turns into AI browser, more Wayland work - Linux Weekly News", "https://www.youtube.com/watch?v=dIxcwRdS5n8", "dIxcwRdS5n8", 43, 1426, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e122000_Firefox turns into AI browser, more Wayland work - Linux Weekly News.mp4", false, ~U[2025-12-20 10:39:49Z]] 20:35:14.219 [debug] QUERY OK source="sources" db=0.4ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.222 [debug] QUERY OK source="media_items" db=2.5ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-19 08:54:06Z], 43] 20:35:14.223 [debug] QUERY OK source="media_items" db=0.6ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "4d783353-453d-4cb9-a1d1-51ea52e7ec23", "https://www.youtube.com/watch?v=WtNb425nJT4", false, "WtNb425nJT4", 43, [], 530, false, 4, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, false, 98, ~U[2025-12-19 08:54:06Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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:48 Firefox will have an \"AI kill switch\"\n04:41 NVK gets a huge performance boost\n06:28 Mint 22.3 beta released\n\n\nLinks:\nFirefox will have an \"AI kill switch\"\nhttps://9to5linux.com/firefox-will-ship-with-an-ai-kill-switch-to-completely-disable-all-ai-features\n\nNVK gets a huge performance boost\nhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36450\n\nMint 22.3 beta released\nhttps://linuxiac.com/linux-mint-22-3-zena-enters-public-beta/", "Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta", "https://www.youtube.com/watch?v=WtNb425nJT4", "WtNb425nJT4", 43, 530, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121900_Daily Linux News - S02E237 - Firefox will have an AI kill Switch, Mint 22.3 beta.NA", false, ~U[2025-12-19 08:54:06Z]] 20:35:14.223 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.226 [debug] QUERY OK source="media_items" db=2.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-12-18 08:39:30Z], 43] 20:35:14.227 [debug] QUERY OK source="media_items" db=0.6ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "ceb2599a-fbdc-4fa3-a6c6-8a0216d6fdca", "https://www.youtube.com/watch?v=rGqKAmDdmXM", false, "rGqKAmDdmXM", 43, [], 523, false, 5, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, false, 98, ~U[2025-12-18 08:39:30Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Mozilla's CEO says he could block adblockers in Firefox\n03:29 Danish admin plans move to Linux\n06:01 Asahi Linux makes solid progress\n\n\nLinks:\n\nMozilla's CEO says he could block adblockers in Firefox\nhttps://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\nDanish admin plans move to Linux\nhttps://thedanishdream.com/news/denmark-ditches-microsoft-in-bold-tech-shift/\nhttps://www.semaphor.dk/opensource/linuxpc\n\nAsahi Linux makes solid progress\nhttps://asahilinux.org/2025/12/progress-report-6-18/", "Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress", "https://www.youtube.com/watch?v=rGqKAmDdmXM", "rGqKAmDdmXM", 43, 523, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121800_Daily Linux News - S02E236 - Mozilla's CEO considered blocking ad blockers, Asahi progress.NA", false, ~U[2025-12-18 08:39:30Z]] 20:35:14.227 [debug] QUERY OK source="sources" db=0.4ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.230 [debug] QUERY OK source="media_items" db=2.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-17 09:03:42Z], 43] 20:35:14.232 [debug] QUERY OK source="media_items" db=1.8ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "be6f7d8d-d48c-4559-ba4e-7052fc151093", "https://www.youtube.com/watch?v=ukEIVoB7ycc", false, "ukEIVoB7ycc", 43, [], 634, false, 6, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, false, 98, ~U[2025-12-17 09:03:42Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Firefox will become an AI browser\n05:33 Servo making progress\n07:10 Website lets you scan Snaps for vulnerabilities\n\n\nLinks:\n\nFirefox will become an AI browser\nhttps://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\n\nServo making progress\nhttps://servo.org/blog/2025/12/15/november-in-servo/\n\nWebsite lets you scan Snaps for vulnerabilities\nhttps://snapscope.popey.com/", "Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner", "https://www.youtube.com/watch?v=ukEIVoB7ycc", "ukEIVoB7ycc", 43, 634, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121700_Daily Linux News - S02E235 - Firefox will become an AI browser, Snap CVE scanner.NA", false, ~U[2025-12-17 09:03:42Z]] 20:35:14.232 [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" = ?) [43] 20:35:14.235 [debug] QUERY OK source="media_items" db=2.4ms 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 09:03:07Z], 43] 20:35:14.236 [debug] QUERY OK source="media_items" db=0.6ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "2ccddcdf-4f22-44fc-bf7c-6ecd0bed309f", "https://www.youtube.com/watch?v=hR2qvY64i-s", false, "hR2qvY64i-s", 43, [], 590, false, 7, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, false, 98, ~U[2025-12-16 09:03:07Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Igalia's work to make 32bit games run on ARM\n03:05 Wayland protocols updated for better HDR\n04:07 Changes proposed to help Fedora work on Snapdragon\n07:05 Fedora Games Lab revived as a gamedev distro\n\nLinks:\nIgalia's work to make 32bit games run on ARM\nhttps://www.phoronix.com/news/Igalia-Futex-ARM64-Linux-Work\n\nWayland protocols updated for better HDR\nhttps://www.phoronix.com/news/Wayland-Protocols-1.47\n\nChanges proposed to help Fedora work on Snapdragon\nhttps://fedoraproject.org/wiki/Changes/Automatic_DTB_selection_for_aarch64_EFI_systems\n\nFedora Games Lab revived as a gamedev distro\nhttps://fedoraproject.org/wiki/Changes/Rework_Games_Lab", "Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab", "https://www.youtube.com/watch?v=hR2qvY64i-s", "hR2qvY64i-s", 43, 590, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121600_Daily Linux News - S02E234 - Wayland protocols, ARM64 work, Fedora Games Lab.NA", false, ~U[2025-12-16 09:03:07Z]] 20:35:14.237 [debug] QUERY OK source="sources" db=0.4ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.239 [debug] QUERY OK source="media_items" db=2.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-15 10:11:27Z], 43] 20:35:14.240 [debug] QUERY OK source="media_items" db=0.5ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "fa1981ac-af9f-467b-bfe7-fda6cea317ba", "https://www.youtube.com/watch?v=koT46u0nB_E", false, "koT46u0nB_E", 43, [], 1284, false, 8, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, false, 97, ~U[2025-12-15 10:11:27Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 My vacation starting on the 22nd, until January 3rd\n03:04 My planned experiment to daily drive Cosmic \n16:56 A few other things happening", "Patroncast S05E57 - Vacation, Cosmic experiment & other things", "https://www.youtube.com/watch?v=koT46u0nB_E", "koT46u0nB_E", 43, 1284, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Patroncast S05E57 - Vacation, Cosmic experiment & other things.NA", false, ~U[2025-12-15 10:11:27Z]] 20:35:14.240 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [43] 20:35:14.243 [debug] QUERY OK source="media_items" db=2.4ms 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[2025-12-15 09:28:14Z], 43] 20:35:14.244 [debug] QUERY OK source="media_items" db=0.6ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "4aacec66-8505-4bb8-8f31-134d95512a8c", "https://www.youtube.com/watch?v=DkBgwsHQoDc", false, "DkBgwsHQoDc", 43, [], 462, false, 9, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, false, 97, ~U[2025-12-15 09:28:14Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 GNOME bans AI from extensions\n03:23 Plasma 6.6 will fix some big Wayland issues\n05:41 Rust no longer experimental in Linux kernel", "Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions", "https://www.youtube.com/watch?v=DkBgwsHQoDc", "DkBgwsHQoDc", 43, 462, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121500_Daily Linux News - S02E233 - Rust no longer experimental, GNOME bans AI code in extensions.NA", false, ~U[2025-12-15 09:28:14Z]] 20:35:14.244 [debug] QUERY OK source="sources" db=0.4ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.247 [debug] QUERY OK source="media_items" db=2.4ms 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[2025-12-13 11:01:25Z], 43] 20:35:14.248 [debug] QUERY OK source="media_items" db=1.1ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "b2410e7e-505a-41f4-ba67-bb44e6afe689", "https://www.youtube.com/watch?v=6gusWDr1Qw0", false, "6gusWDr1Qw0", 43, [], 1591, false, 10, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, false, 98, ~U[2025-12-13 11:01:25Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "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:33 Sponsor: SquareSpace\n01:50 France starts adopting Nextcloud on a big scale\n03:53 German state saves 15M€ per year moving to LibreOffice\n06:04 Jolla launches new Linux smartphone\n08:16 Cosmic and PopOS 24.04 released\n11:26 KDE reaches 275K euros in funding this year\n12:54 Proton launches Proton Sheets\n14:31 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n16:18 Ubuntu MATE and Unity won't be LTS\n18:22 Major library goes unmaintained\n20:01 HDMI 2.1 still not possible on AMD on Linux\n22:14 D7VK released for older, DX7 games\n24:33 Sponsor: Tuxedo Computers\n\nLinks:\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nGerman state saves 15M€ per year moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released\n\n#linuxdesktop #linuxdistro #technews", "New Linux smartphone & Other Linux News", "https://www.youtube.com/watch?v=6gusWDr1Qw0", "6gusWDr1Qw0", 43, 1591, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121300_New Linux smartphone & Other Linux News.mp4", false, ~U[2025-12-13 11:01:25Z]] 20:35:14.249 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.251 [debug] QUERY OK source="media_items" db=2.3ms 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[2025-12-12 09:33:32Z], 43] 20:35:14.252 [debug] QUERY OK source="media_items" db=0.6ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "5fe3adcf-47ce-416b-8611-a4ca9ca38329", "https://www.youtube.com/watch?v=JWQbGDLlcyw", false, "JWQbGDLlcyw", 43, [], 651, false, 11, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, false, 98, ~U[2025-12-12 09:33:32Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Cosmic and PopOS 24.04 released\n05:54 KDE Gear 25.12 released\n08:40 D7VK released for older, DX7 games\n\n\nLinks:\nCosmic and PopOS 24.04 released\nhttps://system76.com/pop/\n\nKDE Gear 25.12 released\nhttps://kde.org/announcements/gear/25.12.0/\n\nD7VK released for older, DX7 games\nhttps://www.phoronix.com/news/D7VK-1.0-Released", "Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK", "https://www.youtube.com/watch?v=JWQbGDLlcyw", "JWQbGDLlcyw", 43, 651, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121200_Daily Linux News - S02E232 - Cosmic released, KDE Gear update, D7VK.NA", false, ~U[2025-12-12 09:33:32Z]] 20:35:14.253 [debug] QUERY OK source="sources" db=0.4ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.255 [debug] QUERY OK source="media_items" db=2.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 15:23:47Z], 43] 20:35:14.256 [debug] QUERY OK source="media_items" db=0.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "d50b4391-1b6d-4f54-b9a5-06a2e58227eb", "https://www.youtube.com/watch?v=ob-Y77kuVwM", false, "ob-Y77kuVwM", 43, [], 1884, false, 12, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, false, 97, ~U[2025-12-11 15:23:47Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "Use a secure, encrypted, and fast VPN with Proton VPN: https://protonvpn.com/TheLinuxEXP\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:38 Sponsor: ProtonVPN\n01:31 Install & First Run\n03:31 Cosmic Desktop: it's fine\n08:10 Design and app integration\n13:15 Desktop Tweaking\n16:49 Tiling\n20:59 X11 & Wayland\n22:45 Default Apps\n16:42 PopOS 24.04: Old, but up to date\n28:47 Parting Thoughts\n\n\n#linuxdesktop #cosmic #linuxdistro #popos", "Cosmic a great Linux desktop, but still limited", "https://www.youtube.com/watch?v=ob-Y77kuVwM", "ob-Y77kuVwM", 43, 1884, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Cosmic a great Linux desktop, but still limited.mp4", false, ~U[2025-12-11 15:23:47Z]] 20:35:14.257 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.259 [debug] QUERY OK source="media_items" db=2.3ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-11 10:30:34Z], 43] 20:35:14.260 [debug] QUERY OK source="media_items" db=0.7ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/\n\nTimestamps:\n00:00 Intro\n00:05 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "e820574e-920c-4f3c-9040-02d1102a2fa3", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", false, "AhM3Pxq_ycM", 43, [], 540, false, 13, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, false, 97, ~U[2025-12-11 10:30:34Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Ubuntu MATE and Unity won't be LTS\n02:12 France starts adopting Nextcloud on a big scale\n04:27 KDE reaches 275K euros in funding this year\n06:12 HDMI 2.1 still not possible on AMD on Linux\n\nLinks:\nUbuntu MATE and Unity won't be LTS\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-unity-mate-26-04-lts-status\n\nFrance starts adopting Nextcloud on a big scale\nhttps://nextcloud.com/blog/digital-sovereignty-momentum-france/\n\nKDE reaches 275K euros in funding this year\nhttps://kde.org/fundraisers/yearend2025/\n\nHDMI 2.1 still not possible on AMD on Linux\nhttps://www.heise.de/en/news/Valve-HDMI-Forum-Continues-to-Block-HDMI-2-1-for-Linux-11107440.html", "Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud", "https://www.youtube.com/watch?v=AhM3Pxq_ycM", "AhM3Pxq_ycM", 43, 540, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121100_Daily Linux News - S02E231 - HDMI being annoying, KDE's funding success, France's move to Nextcloud.NA", false, ~U[2025-12-11 10:30:34Z]] 20:35:14.261 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.263 [debug] QUERY OK source="media_items" db=2.3ms 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-12-10 09:21:39Z], 43] 20:35:14.264 [debug] QUERY OK source="media_items" db=0.7ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "a984ebca-1eac-42dc-ad81-bf50a90b4d43", "https://www.youtube.com/watch?v=9XUHYL7-XtE", false, "9XUHYL7-XtE", 43, [], 610, false, 14, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, false, 98, ~U[2025-12-10 09:21:39Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Discord gets some Linux improvements\n02:24 Peertube 8 is released\n05:20 Ubuntu adopts vanilla GNOME shell style with a few tweaks\n07:34 Major library goes unmaintained\n\nLinks:\nDiscord gets some Linux improvements\nhttps://www.gamingonlinux.com/2025/12/discord-gets-improvements-for-video-on-linux-pcs-and-steam-deck/\n\nPeertube 8 is released\nhttps://joinpeertube.org/news/release-8.0\n\nUbuntu adopts vanilla GNOME shell style with a few tweaks\nhttps://www.omgubuntu.co.uk/2025/12/ubuntu-26-04-yaru-theme-gnome-shell-changes\n\nMajor library goes unmaintained\nhttps://linuxiac.com/libxml2-becomes-officially-unmaintained/", "Daily Linux News - S02E230 - Major library now unmaintained, Peertube update", "https://www.youtube.com/watch?v=9XUHYL7-XtE", "9XUHYL7-XtE", 43, 610, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e121000_Daily Linux News - S02E230 - Major library now unmaintained, Peertube update.NA", false, ~U[2025-12-10 09:21:39Z]] 20:35:14.265 [debug] QUERY OK source="sources" db=0.3ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.267 [debug] QUERY OK source="media_items" db=2.3ms 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[2025-12-09 10:46:07Z], 43] 20:35:14.268 [debug] QUERY OK source="media_items" db=0.7ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "dac82b80-684a-45fc-8975-7740847c3600", "https://www.youtube.com/watch?v=88ioofbr4BY", false, "88ioofbr4BY", 43, [], 717, false, 15, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, false, 98, ~U[2025-12-09 10:46:07Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 German state saved 15M euros moving to LibreOffice\n04:25 Wine 11 gets first RC\n06:46 Firefox 146 fixes fractional scaling\n08:44 New thumbnailer for GNOME after it lost the previous one\n\nLinks:\n\nGerman state saved 15M euros moving to LibreOffice\nhttps://itsfoss.com/news/german-state-ditch-microsoft/\n\nWine 11 gets first RC\nhttps://gitlab.winehq.org/wine/wine/-/releases\n\nFirefox 146 fixes fractional scaling\nhttps://www.omgubuntu.co.uk/2025/12/firefox-146-release-linux-fractional-scaling-support\n\nNew thumbnailer for GNOME after it lost the previous one\nhttps://www.phoronix.com/news/gst-thumbnailers-1.0-alpha", "Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146", "https://www.youtube.com/watch?v=88ioofbr4BY", "88ioofbr4BY", 43, 717, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120900_Daily Linux News - S02E229 - German state saved 15M euros in FOSS move, Wine 11, Firefox 146.NA", false, ~U[2025-12-09 10:46:07Z]] 20:35:14.269 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.271 [debug] QUERY OK source="media_items" db=2.3ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 10:00:52Z], 43] 20:35:14.272 [debug] QUERY OK source="media_items" db=0.7ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "096e378e-0c24-4efa-b53f-e0eeea4d6541", "https://www.youtube.com/watch?v=-tKROWIsGRk", false, "-tKROWIsGRk", 43, [], 863, false, 16, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, false, 97, ~U[2025-12-08 10:00:52Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Homebrew adds Flatpak support\n01:38 Jolla launches new Linux smartphone\n04:24 Proton launches Proton Sheets\n06:24 Flowblade will go Wayland only\n09:35 EU fines Twitter\n\nLinks:\n\nHomebrew adds Flatpak support\nhttps://www.howtogeek.com/homebrew-can-now-help-you-install-flatpaks-too/\n\nJolla launches new Linux smartphone\nhttps://www.gizmochina.com/2025/12/06/jolla-phone-launch-specs-price-sailfish-linux-os/\nhttps://commerce.jolla.com/products/jolla-phone-preorder\n\nProton launches Proton Sheets\nhttps://proton.me/blog/sheets-proton-drive\n\nFlowblade will go Wayland only\nhttps://www.phoronix.com/news/Flowblade-2.24-Released\n\nEU fines Twitter\nhttps://www.bleepingcomputer.com/news/security/eu-fines-x-140-million-over-deceptive-blue-checkmarks-transparency-violations/", "Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU", "https://www.youtube.com/watch?v=-tKROWIsGRk", "-tKROWIsGRk", 43, 863, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Daily Linux News - S02E228 - New Linux Smartphone, Proton's Spreadsheet, X fined in the EU.NA", false, ~U[2025-12-08 10:00:52Z]] 20:35:14.273 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.275 [debug] QUERY OK source="media_items" db=2.6ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-08 07:52:34Z], 43] 20:35:14.276 [debug] QUERY OK source="media_items" db=0.7ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "ca944f12-fb0e-4e90-a302-6dbe60db279a", "https://www.youtube.com/watch?v=JrfgeYskCZw", false, "JrfgeYskCZw", 43, [], 1108, false, 17, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, false, 97, ~U[2025-12-08 07:52:34Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "👕 GET TLE MERCH\nSupport the channel AND get cool new gear: https://the-linux-experiment.creator-spring.com/", "Patroncast S05E46 - Fixing my mess of an online ecosystem", "https://www.youtube.com/watch?v=JrfgeYskCZw", "JrfgeYskCZw", 43, 1108, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120800_Patroncast S05E46 - Fixing my mess of an online ecosystem.NA", false, ~U[2025-12-08 07:52:34Z]] 20:35:14.277 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.279 [debug] QUERY OK source="media_items" db=2.6ms idle=3.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-06 11:14:18Z], 43] 20:35:14.281 [debug] QUERY OK source="media_items" db=1.1ms idle=4.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "119d56fe-3cfa-4bf1-95e6-f5b66415b9ea", "https://www.youtube.com/watch?v=iKzJAgDopVI", false, "iKzJAgDopVI", 43, [], 1495, false, 18, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, false, 98, ~U[2025-12-06 11:14:18Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], "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:30 Sponsor: SquareSpace\n01:46 Valve prepares their own Waydroid version\n05:02 Valve was behind FEX all along\n07:31 ZDNet thinks Linux desktop is at 11% \n10:52 Linux kernel 6.18 released\n13:03 Linux Kernel 6.19 will be packed with GPU improvements\n15:02 NVK + Nouveau improving quickly\n16:54 AlmaLinux wants to be the standard for Media production\n18:38 Fedora replaces the kernel console\n21:04 OpenDocument Format gets an update\n22:57 Sponsor: Tuxedo Computers\n\n\nLinks:\nValve prepares their own Waydroid version\nhttps://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/\nhttps://steamdb.info/app/3043620/info/\nhttps://www.theverge.com/news/818672/valve-android-apps-steam-frame\n\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nZDNet thinks Linux desktop is at 11% \nhttps://www.zdnet.com/article/why-people-keep-flocking-to-linux-in-2025-and-its-not-just-to-escape-windows/\n\nLinux kernel 6.18 released\nhttps://www.omgubuntu.co.uk/2025/11/linux-kernel-6-18-new-features\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON\n\nNVK + Nouveau improving quickly\nhttps://www.phoronix.com/review/nvidia-nvk-linux-618-mesa-26/10\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/", "Is Linux at 11%? Valve's Android translation layer - Linux Weekly News", "https://www.youtube.com/watch?v=iKzJAgDopVI", "iKzJAgDopVI", 43, 1495, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120600_Is Linux at 11%? Valve's Android translation layer - Linux Weekly News.mp4", false, ~U[2025-12-06 11:14:18Z]] 20:35:14.281 [debug] QUERY OK source="sources" db=0.4ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.284 [debug] QUERY OK source="media_items" db=2.6ms 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[2025-12-05 09:02:34Z], 43] 20:35:14.285 [debug] QUERY OK source="media_items" db=0.6ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "3212c687-c84c-4edc-9a6e-c7e484a572aa", "https://www.youtube.com/watch?v=JISz0WG7Sos", false, "JISz0WG7Sos", 43, [], 553, false, 19, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, false, 98, ~U[2025-12-05 09:02:34Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 OpenDocument Format gets an update\n03:14 Redox OS gets Wayland support, MATE desktop and more\n05:49 Linux Kernel 6.19 will be packed with GPU improvements\n\nLinks:\n\nOpenDocument Format gets an update\nhttps://www.oasis-open.org/2025/12/03/oasis-approves-open-document-format-odf-v1-4-standard-marking-20-years-of-interoperable-document-innovation/\n\nRedox OS gets Wayland support, MATE desktop and more\nhttps://www.redox-os.org/news/this-month-251130/\n\nLinux Kernel 6.19 will be packed with GPU improvements\nhttps://www.phoronix.com/news/Linux-6.19-Graphics-Drivers\nhttps://www.phoronix.com/news/Linux-6.19-HWMON", "Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update", "https://www.youtube.com/watch?v=JISz0WG7Sos", "JISz0WG7Sos", 43, 553, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120500_Daily Linux News - S02E227 - Linux kernel gets tons of GPU improvements, RedoxOS update.NA", false, ~U[2025-12-05 09:02:34Z]] 20:35:14.286 [debug] QUERY OK source="sources" db=0.4ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 20:35:14.289 [debug] QUERY OK source="media_items" db=2.7ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 09:00:58Z], 43] 20:35:14.290 [debug] QUERY OK source="media_items" db=0.7ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "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 Valve was behind FEX all along\n03:36 AlmaLinux wants to be the standard for Media production\n06:27 Fedora replaces the kernel console\n\nLinks:\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole", "Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console", "fc5cb94b-7bcb-4c18-9309-ec03060b931a", "https://www.youtube.com/watch?v=sacZp_5J4HY", false, "sacZp_5J4HY", 43, [], 575, false, 20, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120400_Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console.NA", false, false, 98, ~U[2025-12-04 09:00:58Z], ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35: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 Valve was behind FEX all along\n03:36 AlmaLinux wants to be the standard for Media production\n06:27 Fedora replaces the kernel console\n\nLinks:\nValve was behind FEX all along\nhttps://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais\n\nAlmaLinux wants to be the standard for Media production\nhttps://almalinux.org/blog/2025-12-02-almalinux-media-entertainment-sig/\n\nFedora replaces the kernel console\nhttps://fedoraproject.org/wiki/Changes/UseKmsconVTConsole", "Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console", "https://www.youtube.com/watch?v=sacZp_5J4HY", "sacZp_5J4HY", 43, 575, false, "/downloads/chris/tubes/The Linux Experiment_[UC5UAwBUum7CPN5buc-_N1Fw]/Season 2025/s2025e120400_Daily Linux News - S02E226 - Valve funded FEX all along, Fedora replaces the kernel console.NA", false, ~U[2025-12-04 09:00:58Z]] 20:35:14.290 [debug] QUERY OK source="sources" db=0.4ms idle=5.7ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z], 43] 20:35:14.294 [debug] QUERY OK source="media_items" db=3.3ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 20:35:14.299 [debug] QUERY OK source="tasks" db=0.1ms idle=1.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88166, 1012065, ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z]] 20:35:14.305 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767234914305322014,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:35:14.305 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1012065] 20:35:14.305 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:35:14.306 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [43] 20:35:14.306 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:14.307 [debug] QUERY OK source="media_items" db=0.3ms 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 [1012065] 20:35:14.308 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:35:14.308 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:14.309 [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 [] 20:35:14.309 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:14.309 [debug] Running yt-dlp command for action: get_downloadable_status 20:35:14.310 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:14.310 [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 [] 20:35:14.310 [debug] QUERY OK source="settings" db=0.1ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:14.310 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/49/4c/494cfb4175b32f763d6960c818546e7bb088fe483e7092350065caefc6b0da30.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:35:14.357 [debug] QUERY OK source="media_items" db=3.2ms idle=1.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] 20:35:14.357 [debug] QUERY OK source="media_items" db=0.2ms idle=4.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 20:35:14.358 [debug] QUERY OK source="tasks" db=0.1ms idle=4.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88167, 43, ~U[2026-01-01 02:35:14Z], ~U[2026-01-01 02:35:14Z]] 20:35:14.359 [info] {"args":{"id":43},"id":88145,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":28123309,"event":"job:stop","queue_time":760163,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:35:16.713 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/49/4c/494cfb4175b32f763d6960c818546e7bb088fe483e7092350065caefc6b0da30.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:35:16.713 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:35:16.714 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2408220,"event":"job:exception","queue_time":304407,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:35:17.852 [info] {"source":"oban","duration":4232,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:35:34.306 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767234934306217415,"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"]} 20:35:34.306 [debug] QUERY OK source="media_items" db=0.1ms idle=1959.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" = ?) [1012065] 20:35:34.306 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:35:34.307 [debug] QUERY OK source="sources" db=0.1ms idle=1007.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:35:34.307 [debug] QUERY OK source="media_profiles" db=0.1ms idle=960.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:34.307 [debug] QUERY OK source="media_items" db=0.1ms idle=7.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 20:35:34.308 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:35:34.308 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:34.308 [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 [] 20:35:34.309 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:34.309 [debug] Running yt-dlp command for action: get_downloadable_status 20:35:34.309 [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 [] 20:35:34.310 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:34.310 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:34.310 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/15/e3/15e394a42c1c1d3aac43753f8c30149e5f02213465efb7b29b0090f99c76122d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:35:36.512 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/15/e3/15e394a42c1c1d3aac43753f8c30149e5f02213465efb7b29b0090f99c76122d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:35:36.512 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:35:36.512 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2206054,"event":"job:exception","queue_time":591834,"attempt":2,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:35:47.857 [info] {"source":"oban","duration":3594,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:35:57.331 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767234957331184055,"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"]} 20:35:57.331 [debug] QUERY OK source="media_items" db=0.1ms idle=1984.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" = ?) [1012065] 20:35:57.331 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:35:57.331 [debug] QUERY OK source="sources" db=0.1ms idle=1008.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:35:57.332 [debug] QUERY OK source="media_profiles" db=0.1ms idle=985.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:57.332 [debug] QUERY OK source="media_items" db=0.1ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 20:35:57.333 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:35:57.333 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:35:57.334 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:57.334 [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 [] 20:35:57.334 [debug] Running yt-dlp command for action: get_downloadable_status 20:35:57.335 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:57.335 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:57.335 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:35:57.335 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/26/1c/261c0723a4d3d8af2093195ee091f498719ed8cfe2d155fa3e5c9b2b5434d8d4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:35:59.760 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/26/1c/261c0723a4d3d8af2093195ee091f498719ed8cfe2d155fa3e5c9b2b5434d8d4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:35:59.760 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:35:59.761 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2429612,"event":"job:exception","queue_time":818113,"attempt":3,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:36:00.922 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:36:17.860 [info] {"source":"oban","duration":3364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:36:25.368 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767234985368804150,"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"]} 20:36:25.369 [debug] QUERY OK source="media_items" db=0.1ms idle=1022.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" = ?) [1012065] 20:36:25.369 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:36:25.369 [debug] QUERY OK source="sources" db=0.1ms idle=1009.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:36:25.370 [debug] QUERY OK source="media_profiles" db=0.2ms idle=23.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:36:25.370 [debug] QUERY OK source="media_items" db=0.1ms idle=8.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 20:36:25.371 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:36:25.371 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:36:25.371 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:36:25.371 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:36:25.371 [debug] Running yt-dlp command for action: get_downloadable_status 20:36:25.372 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:36:25.372 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:36:25.373 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:36:25.373 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ec/82/ec821710a80fb4237c1f889e8950c7823f1f703a7ad95cb4c4828c455bbb4f64.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:36:27.566 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ec/82/ec821710a80fb4237c1f889e8950c7823f1f703a7ad95cb4c4828c455bbb4f64.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:36:27.566 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:36:27.567 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2198063,"event":"job:exception","queue_time":606669,"attempt":4,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:36:47.865 [info] {"source":"oban","duration":3839,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:36:59.417 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767235019417788317,"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"]} 20:36:59.418 [debug] QUERY OK source="media_items" db=0.1ms idle=71.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" = ?) [1012065] 20:36:59.418 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:36:59.418 [debug] QUERY OK source="sources" db=0.1ms idle=71.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:36:59.419 [debug] QUERY OK source="media_profiles" db=0.4ms idle=72.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:36:59.419 [debug] QUERY OK source="media_items" db=0.2ms idle=8.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 [1012065] 20:36:59.420 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:36:59.420 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:36:59.420 [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 [] 20:36:59.420 [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 [] 20:36:59.421 [debug] Running yt-dlp command for action: get_downloadable_status 20:36:59.422 [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 [] 20:36:59.422 [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 [] 20:36:59.422 [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 [] 20:36:59.422 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4a/98/4a988d120a49d0058e5912e22a342b54b2f24c3a89e9d1b8763472c06989c5ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:37:00.924 [info] {"source":"oban","duration":366,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:37:01.624 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4a/98/4a988d120a49d0058e5912e22a342b54b2f24c3a89e9d1b8763472c06989c5ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:37:01.624 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:37:01.625 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2206696,"event":"job:exception","queue_time":849924,"attempt":5,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:37:17.868 [info] {"source":"oban","duration":3397,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:37:47.872 [info] {"source":"oban","duration":3216,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:37:53.507 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767235073507296240,"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"]} 20:37:53.507 [debug] QUERY OK source="media_items" db=0.4ms idle=160.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" = ?) [1012065] 20:37:53.508 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:37:53.508 [debug] QUERY OK source="sources" db=0.2ms idle=161.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:37:53.508 [debug] QUERY OK source="media_profiles" db=0.1ms idle=161.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:37:53.509 [debug] QUERY OK source="media_items" db=0.1ms idle=8.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 20:37:53.513 [debug] QUERY OK source="media_metadata" db=0.1ms idle=6.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" = ?) [1012065] 20:37:53.513 [debug] QUERY OK source="media_profiles" db=0.0ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:37:53.514 [debug] QUERY OK source="settings" db=0.0ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:37:53.514 [debug] QUERY OK source="settings" db=0.0ms idle=5.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:37:53.514 [debug] Running yt-dlp command for action: get_downloadable_status 20:37:53.514 [debug] QUERY OK source="settings" db=0.0ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:37:53.514 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:37:53.514 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:37:53.514 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/2d/e72d0b8c60c5a84097fcfad286fc38ae2a3375e86828dfa78cf9aa14e3891b8f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:37:55.753 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/2d/e72d0b8c60c5a84097fcfad286fc38ae2a3375e86828dfa78cf9aa14e3891b8f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:37:55.753 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:37:55.753 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2246220,"event":"job:exception","queue_time":881916,"attempt":6,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:38:00.926 [info] {"source":"oban","duration":298,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:38:17.876 [info] {"source":"oban","duration":3409,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:38:47.881 [info] {"source":"oban","duration":3897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:39:00.926 [info] {"source":"oban","duration":201,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:39:17.884 [info] {"source":"oban","duration":2353,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:39:22.649 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767235162649253530,"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"]} 20:39:22.649 [debug] QUERY OK source="media_items" db=0.3ms idle=1302.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" = ?) [1012065] 20:39:22.649 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:39:22.650 [debug] QUERY OK source="sources" db=0.1ms idle=1303.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:39:22.650 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1010.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:39:22.650 [debug] QUERY OK source="media_items" db=0.1ms idle=8.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 20:39:22.652 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:39:22.652 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:39:22.652 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:39:22.652 [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 [] 20:39:22.652 [debug] Running yt-dlp command for action: get_downloadable_status 20:39:22.654 [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 [] 20:39:22.654 [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 [] 20:39:22.654 [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 [] 20:39:22.654 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2d/9b/2d9b1d77f118dee05983b3412107ec65ed7aeb4a3366a083f51f1bcf7d886295.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:39:24.782 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2d/9b/2d9b1d77f118dee05983b3412107ec65ed7aeb4a3366a083f51f1bcf7d886295.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:39:24.782 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:39:24.782 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2133130,"event":"job:exception","queue_time":894218,"attempt":7,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:39:46.691 [info] {"args":{"id":51},"id":88165,"meta":{},"system_time":1767235186691002080,"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"]} 20:39:46.691 [debug] QUERY OK source="sources" db=0.1ms idle=344.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:39:46.691 [debug] QUERY OK source="settings" db=0.1ms idle=344.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:39:46.692 [debug] QUERY OK source="media_profiles" db=0.1ms idle=345.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:39:46.692 [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 [] 20:39:46.692 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 20:39:46.970 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:39:46.971 [debug] QUERY OK source="media_items" db=0.3ms idle=279.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, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:39:46.972 [debug] QUERY OK source="media_items" db=0.3ms idle=280.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")))) [51] 20:39:46.972 [debug] QUERY OK source="tasks" db=0.1ms idle=280.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88168, 51, ~U[2026-01-01 02:39:46Z], ~U[2026-01-01 02:39:46Z]] 20:39:46.973 [info] {"args":{"id":51},"id":88165,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":281911,"event":"job:stop","queue_time":725565,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 20:39:47.889 [info] {"source":"oban","duration":3948,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:40:00.927 [info] {"source":"oban","duration":139,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:40:17.894 [info] {"source":"oban","duration":3400,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:40:47.898 [info] {"source":"oban","duration":3696,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:00.929 [info] {"source":"oban","duration":343,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:41:17.902 [info] {"source":"oban","duration":3846,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:47.905 [info] {"source":"oban","duration":2237,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:41:56.898 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767235316898886999,"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"]} 20:41:56.899 [debug] QUERY OK source="media_items" db=0.1ms idle=1552.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" = ?) [1012065] 20:41:56.899 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:41:56.900 [debug] QUERY OK source="sources" db=0.4ms idle=1009.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:41:56.900 [debug] QUERY OK source="media_profiles" db=0.3ms idle=553.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:41:56.901 [debug] QUERY OK source="media_items" db=0.4ms idle=9.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1012065] 20:41:56.902 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:41:56.902 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:41:56.902 [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 [] 20:41:56.903 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:41:56.903 [debug] Running yt-dlp command for action: get_downloadable_status 20:41:56.903 [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 [] 20:41:56.904 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:41:56.904 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:41:56.904 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f6/71/f671deb11e4f78c8d9bfd6502fa339a73d0e13533fa57332dcad0966ab166e34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:41:59.280 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f6/71/f671deb11e4f78c8d9bfd6502fa339a73d0e13533fa57332dcad0966ab166e34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:41:59.281 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:41:59.281 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2382264,"event":"job:exception","queue_time":115097,"attempt":8,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:42:00.931 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:42:17.910 [info] {"source":"oban","duration":3592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:42:47.915 [info] {"source":"oban","duration":4171,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:43:00.932 [info] {"source":"oban","duration":285,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:43:17.918 [info] {"source":"oban","duration":3247,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:43:47.922 [info] {"source":"oban","duration":2632,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:44:00.933 [info] {"source":"oban","duration":171,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:44:17.925 [info] {"source":"oban","duration":3403,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:47.930 [info] {"source":"oban","duration":3806,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:00.934 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:45:17.933 [info] {"source":"oban","duration":2467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":2} 20:45:47.938 [info] {"source":"oban","duration":4103,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:00.936 [info] {"source":"oban","duration":374,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:46:17.943 [info] {"source":"oban","duration":3544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:45.336 [info] {"args":{"id":1012065},"id":88166,"meta":{},"system_time":1767235605336874317,"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"]} 20:46:45.337 [debug] QUERY OK source="media_items" db=0.1ms idle=1990.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" = ?) [1012065] 20:46:45.337 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:46:45.337 [debug] QUERY OK source="sources" db=0.3ms idle=1990.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:46:45.338 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1010.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:45.338 [debug] QUERY OK source="media_items" db=0.4ms idle=8.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 [1012065] 20:46:45.340 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1012065] 20:46:45.340 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:45.340 [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 [] 20:46:45.340 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:45.340 [debug] Running yt-dlp command for action: get_downloadable_status 20:46:45.341 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:45.341 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:45.341 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:45.341 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f1/9a/f19a9bb150f70a2da14e4c755b1c162ea102e06068695d7eb92f50e6557fbc59.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:47.577 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xoAjhBheVac --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f1/9a/f19a9bb150f70a2da14e4c755b1c162ea102e06068695d7eb92f50e6557fbc59.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks. 20:46:47.578 [error] yt-dlp download error for media item #1012065: "ERROR: [youtube] xoAjhBheVac: Join this channel to get access to members-only content like this video, and other exclusive perks.\n" 20:46:47.578 [info] {"error":"** (Oban.PerformError) Pinchflat.Downloading.MediaDownloadWorker failed with {:error, :download_failed}","args":{"id":1012065},"id":88166,"meta":{},"state":"failure","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2241333,"event":"job:exception","queue_time":54290,"attempt":9,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:46:47.948 [info] {"source":"oban","duration":3891,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:00.937 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:47:15.388 [info] {"args":{"id":30},"id":88161,"meta":{},"system_time":1767235635387887150,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:47:15.388 [debug] QUERY OK source="sources" db=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:15.388 [debug] QUERY OK source="settings" db=0.1ms idle=41.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:15.392 [debug] QUERY OK source="media_items" db=3.8ms idle=41.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] 20:47:15.393 [debug] QUERY OK source="media_items" db=0.4ms idle=11.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 20:47:15.393 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:15.393 [debug] QUERY OK source="settings" db=0.0ms idle=5.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:15.393 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:15.397 [debug] QUERY OK source="media_items" db=2.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 [30] 20:47:15.399 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:47:15.399 [debug] Current batch of media processed. Will check again in 1000ms 20:47:15.399 [debug] QUERY OK source="settings" db=0.0ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:15.399 [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 [] 20:47:15.399 [debug] QUERY OK source="settings" db=0.0ms idle=5.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:15.399 [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/3a/a4/3aa4248ed142ef4ed80d1221e946ceea49920eb39bfc8971ac263d66b443d8c4.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c9/f3/c9f3bfa6fcba821a3771e5b250c1eeb2762535b28d13b13732848fe873dbc124.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:47:16.400 [debug] Current batch of media processed. Will check again in 1000ms 20:47:17.401 [debug] Current batch of media processed. Will check again in 1000ms 20:47:17.953 [info] {"source":"oban","duration":3532,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:18.402 [debug] Current batch of media processed. Will check again in 1000ms 20:47:19.403 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1263, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", "id" => "NKPMDddHbSQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NKPMDddHbSQ", "playlist_index" => 1, "timestamp" => 1767198617, "title" => "Phoenix: A New Linux X11 Server For 2026!?!", "upload_date" => "20251231"} 20:47:19.404 [debug] QUERY OK source="sources" db=0.2ms 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 (?)) [30] 20:47:19.404 [debug] QUERY OK source="sources" db=0.1ms idle=58.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:19.408 [debug] QUERY OK source="media_items" db=3.6ms idle=58.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-31 16:30:17Z], 30] 20:47:19.410 [debug] QUERY OK source="media_items" db=0.9ms idle=62.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "173966a6-f057-4b07-a011-e55d92197c4f", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 02:47:19Z], ~U[2026-01-01 02:47:19Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 20:47:19.410 [debug] QUERY OK source="sources" db=0.1ms idle=22.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:19.410 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:19.410 [debug] QUERY OK source="media_items" db=0.1ms 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 [1907515] 20:47:19.410 [debug] Current batch of media processed. Will check again in 1000ms 20:47:20.411 [debug] Current batch of media processed. Will check again in 1000ms 20:47:21.413 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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" => 1035, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", "id" => "hOUwH5A2oQs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hOUwH5A2oQs", "playlist_index" => 2, "timestamp" => 1767112220, "title" => "The MongoBleed Vulnerability Is Absolutely Insane", "upload_date" => "20251230"} 20:47:21.413 [debug] QUERY OK source="sources" db=0.2ms idle=67.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:21.414 [debug] QUERY OK source="sources" db=0.1ms idle=67.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:21.418 [debug] QUERY OK source="media_items" db=3.9ms idle=67.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-30 16:30:20Z], 30] 20:47:21.433 [debug] QUERY OK source="media_items" db=14.7ms idle=71.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "f2514cec-5726-4cf5-b035-b2129aeea94a", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 02:47:21Z], ~U[2026-01-01 02:47:21Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 20:47:21.434 [debug] QUERY OK source="sources" db=0.1ms 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] 20:47:21.435 [debug] QUERY OK source="media_profiles" db=0.7ms idle=20.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:21.435 [debug] QUERY OK source="media_items" db=0.1ms idle=20.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 [1899680] 20:47:21.435 [debug] Current batch of media processed. Will check again in 1000ms 20:47:22.436 [debug] Current batch of media processed. Will check again in 1000ms 20:47:23.437 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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" => 837, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", "id" => "ZYC6_CJMu34", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZYC6_CJMu34", "playlist_index" => 3, "timestamp" => 1767025818, "title" => "The One Thing I Hate About Linux Flatpaks", "upload_date" => "20251229"} 20:47:23.438 [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" IN (?)) [30] 20:47:23.438 [debug] QUERY OK source="sources" db=0.1ms idle=92.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:23.442 [debug] QUERY OK source="media_items" db=3.7ms idle=92.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-29 16:30:18Z], 30] 20:47:23.448 [debug] QUERY OK source="media_items" db=4.9ms idle=96.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "7e7e9cc1-8db0-483a-924d-61c45fe35d2c", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 02:47:23Z], ~U[2026-01-01 02:47:23Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 20:47:23.448 [debug] QUERY OK source="sources" db=0.3ms idle=52.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:23.449 [debug] QUERY OK source="media_profiles" db=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] 20:47:23.449 [debug] QUERY OK source="media_items" db=0.1ms 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 [1891625] 20:47:23.449 [debug] Current batch of media processed. Will check again in 1000ms 20:47:24.450 [debug] Current batch of media processed. Will check again in 1000ms 20:47:25.452 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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" => 1354, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", "id" => "upKM5mViQrY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=upKM5mViQrY", "playlist_index" => 4, "timestamp" => 1766939431, "title" => "It's Time To Make A Major Change On Linux", "upload_date" => "20251228"} 20:47:25.452 [debug] QUERY OK source="sources" db=0.1ms idle=105.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:25.453 [debug] QUERY OK source="sources" db=0.1ms idle=106.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:25.457 [debug] QUERY OK source="media_items" db=3.8ms idle=106.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-28 16:30:31Z], 30] 20:47:25.458 [debug] QUERY OK source="media_items" db=1.0ms idle=110.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "67ed74a4-fcde-4863-aeed-355fc39f1301", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 02:47:25Z], ~U[2026-01-01 02:47:25Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 20:47:25.458 [debug] QUERY OK source="sources" db=0.1ms idle=59.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:25.459 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:25.459 [debug] QUERY OK source="media_items" db=0.2ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1883567] 20:47:25.459 [debug] Current batch of media processed. Will check again in 1000ms 20:47:26.460 [debug] Current batch of media processed. Will check again in 1000ms 20:47:27.461 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 773, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", "id" => "Aim-akCtpzM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Aim-akCtpzM", "playlist_index" => 5, "timestamp" => 1766853005, "title" => "Prepping For The Next Cloudflare Outage", "upload_date" => "20251227"} 20:47:27.462 [debug] QUERY OK source="sources" db=0.1ms idle=114.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:27.462 [debug] QUERY OK source="sources" db=0.0ms idle=114.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:27.466 [debug] QUERY OK source="media_items" db=3.7ms idle=115.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-27 16:30:05Z], 30] 20:47:27.467 [debug] QUERY OK source="media_items" db=0.9ms idle=119.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "d8fe56f8-ed57-4d90-a745-9f1fe649dc57", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 02:47:27Z], ~U[2026-01-01 02:47:27Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 20:47:27.467 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:27.468 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:27.468 [debug] QUERY OK source="media_items" db=0.1ms 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 [1875639] 20:47:27.468 [debug] Current batch of media processed. Will check again in 1000ms 20:47:28.469 [debug] Current batch of media processed. Will check again in 1000ms 20:47:29.471 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1067, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", "id" => "Db_Nl8vHs9A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "playlist_index" => 6, "timestamp" => 1766680204, "title" => "Mozilla Firefox's Future Is Going To Be Interesting", "upload_date" => "20251225"} 20:47:29.471 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=124.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:29.472 [debug] QUERY OK source="sources" db=0.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:29.476 [debug] QUERY OK source="media_items" db=3.8ms idle=125.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-25 16:30:04Z], 30] 20:47:29.477 [debug] QUERY OK source="media_items" db=1.0ms idle=129.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "7ad75f2d-3e98-4940-93f9-ce1f6e7d08e9", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 02:47:29Z], ~U[2026-01-01 02:47:29Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 20:47:29.477 [debug] QUERY OK source="sources" db=0.1ms idle=71.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:29.478 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:29.478 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1859592] 20:47:29.478 [debug] Current batch of media processed. Will check again in 1000ms 20:47:30.479 [debug] Current batch of media processed. Will check again in 1000ms 20:47:31.481 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 933, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", "id" => "WTatQTpRWPs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WTatQTpRWPs", "playlist_index" => 7, "timestamp" => 1766593822, "title" => "The Truth Of The First Linux Kernel CVE In Rust", "upload_date" => "20251224"} 20:47:31.481 [debug] QUERY OK source="sources" db=0.2ms idle=134.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:31.482 [debug] QUERY OK source="sources" db=0.0ms idle=135.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:31.485 [debug] QUERY OK source="media_items" db=3.7ms idle=135.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-24 16:30:22Z], 30] 20:47:31.487 [debug] QUERY OK source="media_items" db=1.0ms idle=139.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "9d8ca863-dbfe-4034-8996-c66667a9eb2e", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 02:47:31Z], ~U[2026-01-01 02:47:31Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 20:47:31.487 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 20:47:31.487 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:31.488 [debug] QUERY OK source="media_items" db=0.1ms 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 [1851616] 20:47:31.488 [debug] Current batch of media processed. Will check again in 1000ms 20:47:32.488 [debug] Current batch of media processed. Will check again in 1000ms 20:47:33.489 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1019, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", "id" => "2-obijeo_bU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2-obijeo_bU", "playlist_index" => 8, "timestamp" => 1766507402, "title" => "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "upload_date" => "20251223"} 20:47:33.490 [debug] QUERY OK source="sources" db=0.2ms idle=142.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:33.490 [debug] QUERY OK source="sources" db=0.1ms idle=143.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:33.494 [debug] QUERY OK source="media_items" db=3.8ms idle=143.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-23 16:30:02Z], 30] 20:47:33.496 [debug] QUERY OK source="media_items" db=1.1ms idle=147.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "297eaa1e-24ff-4224-aef3-3b225edf2ab6", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 02:47:33Z], ~U[2026-01-01 02:47:33Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 20:47:33.496 [debug] QUERY OK source="sources" db=0.1ms idle=82.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:33.496 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:33.497 [debug] QUERY OK source="media_items" db=0.1ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1843863] 20:47:33.497 [debug] Current batch of media processed. Will check again in 1000ms 20:47:34.497 [debug] Current batch of media processed. Will check again in 1000ms 20:47:35.499 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1008, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", "id" => "Y_9BrE3JzWY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "playlist_index" => 9, "timestamp" => 1766421016, "title" => "Let Me Rant About Computers For 16 Minutes", "upload_date" => "20251222"} 20:47:35.499 [debug] QUERY OK source="sources" db=0.1ms idle=152.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:35.500 [debug] QUERY OK source="sources" db=0.0ms idle=153.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:35.504 [debug] QUERY OK source="media_items" db=3.7ms idle=153.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-22 16:30:16Z], 30] 20:47:35.508 [debug] QUERY OK source="media_items" db=4.1ms idle=157.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "fc872003-16ac-4780-9f16-dad9fe8a5ef4", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 02:47:35Z], ~U[2026-01-01 02:47:35Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 20:47:35.509 [debug] QUERY OK source="sources" db=0.1ms 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] 20:47:35.509 [debug] QUERY OK source="media_profiles" db=0.1ms 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] 20:47:35.509 [debug] QUERY OK source="media_items" db=0.1ms 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 [1835824] 20:47:35.509 [debug] Current batch of media processed. Will check again in 1000ms 20:47:36.510 [debug] Current batch of media processed. Will check again in 1000ms 20:47:37.512 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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" => 1190, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", "id" => "8PTlYeLBKvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8PTlYeLBKvI", "playlist_index" => 10, "timestamp" => 1766334607, "title" => "FOSS Is Always One Maintainer From Collapsing", "upload_date" => "20251221"} 20:47:37.512 [debug] QUERY OK source="sources" db=0.1ms 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 (?)) [30] 20:47:37.512 [debug] QUERY OK source="sources" db=0.1ms idle=165.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:37.516 [debug] QUERY OK source="media_items" db=3.7ms idle=166.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-21 16:30:07Z], 30] 20:47:37.518 [debug] QUERY OK source="media_items" db=0.9ms idle=169.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "cffdc25e-984c-47d5-8b49-7d1d417a1f58", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 02:47:37Z], ~U[2026-01-01 02:47:37Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 20:47:37.518 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [30] 20:47:37.518 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:37.518 [debug] QUERY OK source="media_items" db=0.1ms 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 [1827811] 20:47:37.519 [debug] Current batch of media processed. Will check again in 1000ms 20:47:38.519 [debug] Current batch of media processed. Will check again in 1000ms 20:47:39.520 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 1179, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", "id" => "AY5kRPexQz4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AY5kRPexQz4", "playlist_index" => 11, "timestamp" => 1766248204, "title" => "Is This A Serious Attempt At A Linux Phone?", "upload_date" => "20251220"} 20:47:39.521 [debug] QUERY OK source="sources" db=0.1ms idle=174.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:39.521 [debug] QUERY OK source="sources" db=0.0ms idle=174.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:39.525 [debug] QUERY OK source="media_items" db=3.8ms idle=174.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-20 16:30:04Z], 30] 20:47:39.527 [debug] QUERY OK source="media_items" db=1.0ms idle=178.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "0bcbee48-64ca-491b-9716-c3cc579a1656", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 02:47:39Z], ~U[2026-01-01 02:47:39Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 20:47:39.527 [debug] QUERY OK source="sources" db=0.1ms idle=101.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:39.527 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:39.528 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1819814] 20:47:39.528 [debug] Current batch of media processed. Will check again in 1000ms 20:47:40.528 [debug] Current batch of media processed. Will check again in 1000ms 20:47:41.530 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1923, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", "id" => "3kZJrQNE3Lw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "playlist_index" => 12, "timestamp" => 1766075400, "title" => "KDE And GNOME Finally Have A Real Competitor", "upload_date" => "20251218"} 20:47:41.530 [debug] QUERY OK source="sources" db=0.2ms idle=183.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:41.531 [debug] QUERY OK source="sources" db=0.1ms idle=184.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:41.535 [debug] QUERY OK source="media_items" db=3.9ms idle=184.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 16:30:00Z], 30] 20:47:41.536 [debug] QUERY OK source="media_items" db=0.9ms idle=188.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "c071ed5e-361e-4ca6-a4c0-997a3e12a294", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 02:47:41Z], ~U[2026-01-01 02:47:41Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 20:47:41.536 [debug] QUERY OK source="sources" db=0.1ms idle=106.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:41.537 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:41.537 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1804241] 20:47:41.537 [debug] Current batch of media processed. Will check again in 1000ms 20:47:42.538 [debug] Current batch of media processed. Will check again in 1000ms 20:47:43.539 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 966, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", "id" => "5AePMwjV3E4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5AePMwjV3E4", "playlist_index" => 13, "timestamp" => 1765989001, "title" => "The Craziest Linux User Found My Email Address", "upload_date" => "20251217"} 20:47:43.540 [debug] QUERY OK source="sources" db=0.1ms idle=193.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:43.540 [debug] QUERY OK source="sources" db=0.0ms idle=193.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:43.544 [debug] QUERY OK source="media_items" db=4.0ms idle=193.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-17 16:30:01Z], 30] 20:47:43.545 [debug] QUERY OK source="media_items" db=0.8ms idle=197.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "b1e6f256-95c1-493b-aec5-10b6d57f92bc", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 02:47:43Z], ~U[2026-01-01 02:47:43Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 20:47:43.546 [debug] QUERY OK source="sources" db=0.1ms idle=112.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:43.546 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:43.546 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1796109] 20:47:43.546 [debug] Current batch of media processed. Will check again in 1000ms 20:47:44.547 [debug] Current batch of media processed. Will check again in 1000ms 20:47:45.548 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 1526, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", "id" => "kwXn_GSd8cA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kwXn_GSd8cA", "playlist_index" => 14, "timestamp" => 1765902617, "title" => "The Rust Linux Kernel Experiment Is Finally Over!!", "upload_date" => "20251216"} 20:47:45.549 [debug] QUERY OK source="sources" db=0.1ms idle=202.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:45.549 [debug] QUERY OK source="sources" db=0.0ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:45.553 [debug] QUERY OK source="media_items" db=3.8ms idle=202.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 16:30:17Z], 30] 20:47:45.555 [debug] QUERY OK source="media_items" db=1.0ms idle=206.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "5f9de80f-4619-4f7e-9472-03dc2653a2be", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 02:47:45Z], ~U[2026-01-01 02:47:45Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 20:47:45.555 [debug] QUERY OK source="sources" db=0.1ms idle=119.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:45.555 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:45.555 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1788245] 20:47:45.555 [debug] Current batch of media processed. Will check again in 1000ms 20:47:46.556 [debug] Current batch of media processed. Will check again in 1000ms 20:47:47.557 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 808, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", "id" => "IB_0rR0imno", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IB_0rR0imno", "playlist_index" => 15, "timestamp" => 1765816207, "title" => "I Was Right Again About My Linux Home Directory", "upload_date" => "20251215"} 20:47:47.558 [debug] QUERY OK source="sources" db=0.2ms idle=211.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:47.558 [debug] QUERY OK source="sources" db=0.1ms idle=211.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:47.562 [debug] QUERY OK source="media_items" db=3.8ms idle=211.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-15 16:30:07Z], 30] 20:47:47.563 [debug] QUERY OK source="media_items" db=0.9ms idle=216.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "c494bb1c-6a28-4d0c-9c77-ab05cbcf1597", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 02:47:47Z], ~U[2026-01-01 02:47:47Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 20:47:47.564 [debug] QUERY OK source="sources" db=0.1ms idle=124.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:47.564 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:47.564 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1780315] 20:47:47.564 [debug] Current batch of media processed. Will check again in 1000ms 20:47:47.957 [info] {"source":"oban","duration":3881,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:48.565 [debug] Current batch of media processed. Will check again in 1000ms 20:47:49.566 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 981, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", "id" => "LbK_xreMSio", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LbK_xreMSio", "playlist_index" => 16, "timestamp" => 1765729806, "title" => "This Is The Kind Project I Love Linux For!!", "upload_date" => "20251214"} 20:47:49.566 [debug] QUERY OK source="sources" db=0.1ms idle=220.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 20:47:49.567 [debug] QUERY OK source="sources" db=0.1ms idle=220.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:49.571 [debug] QUERY OK source="media_items" db=3.9ms idle=220.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-14 16:30:06Z], 30] 20:47:49.572 [debug] QUERY OK source="media_items" db=1.0ms idle=224.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "9a92c9e1-4de0-4825-be1e-d1f0bb4663a7", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 02:47:49Z], ~U[2026-01-01 02:47:49Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 20:47:49.572 [debug] QUERY OK source="sources" db=0.1ms idle=131.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:49.573 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:49.573 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1772387] 20:47:49.573 [debug] Current batch of media processed. Will check again in 1000ms 20:47:50.574 [debug] Current batch of media processed. Will check again in 1000ms 20:47:51.575 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 780, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", "id" => "OEPcLRH-Eiw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "playlist_index" => 17, "timestamp" => 1765643418, "title" => "Valve, We NEED A 64 Bit Steam Client On Linux!!", "upload_date" => "20251213"} 20:47:51.576 [debug] QUERY OK source="sources" db=0.1ms idle=229.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [30] 20:47:51.576 [debug] QUERY OK source="sources" db=0.1ms idle=229.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:51.580 [debug] QUERY OK source="media_items" db=3.9ms idle=229.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-13 16:30:18Z], 30] 20:47:51.581 [debug] QUERY OK source="media_items" db=1.0ms idle=234.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "17cb52ed-8297-48ba-a036-e7e3c1cb4b1f", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 02:47:51Z], ~U[2026-01-01 02:47:51Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 20:47:51.582 [debug] QUERY OK source="sources" db=0.1ms idle=138.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:51.582 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:51.582 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1764416] 20:47:51.582 [debug] Current batch of media processed. Will check again in 1000ms 20:47:52.583 [debug] Current batch of media processed. Will check again in 1000ms 20:47:53.584 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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" => 2001, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", "id" => "PmjBZDGJzDQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "playlist_index" => 18, "timestamp" => 1765470611, "title" => "The Scientifically Correct Arch Linux User", "upload_date" => "20251211"} 20:47:53.585 [debug] QUERY OK source="sources" db=0.1ms idle=238.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:53.585 [debug] QUERY OK source="sources" db=0.0ms idle=238.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:53.589 [debug] QUERY OK source="media_items" db=3.9ms idle=239.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-11 16:30:11Z], 30] 20:47:53.590 [debug] QUERY OK source="media_items" db=0.8ms idle=243.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "f1427fee-fa8c-4ac5-b455-97abaf035bfe", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 02:47:53Z], ~U[2026-01-01 02:47:53Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 20:47:53.591 [debug] QUERY OK source="sources" db=0.1ms idle=143.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:53.591 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:53.591 [debug] QUERY OK source="media_items" db=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1748497] 20:47:53.591 [debug] Current batch of media processed. Will check again in 1000ms 20:47:54.592 [debug] Current batch of media processed. Will check again in 1000ms 20:47:55.593 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "duration" => 894, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", "id" => "N_X7clyPE5Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N_X7clyPE5Q", "playlist_index" => 19, "timestamp" => 1765384216, "title" => "You Control The Future Of Xorg On Linux!!", "upload_date" => "20251210"} 20:47:55.594 [debug] QUERY OK source="sources" db=0.2ms idle=247.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:55.594 [debug] QUERY OK source="sources" db=0.0ms idle=247.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:55.598 [debug] QUERY OK source="media_items" db=3.6ms idle=248.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-10 16:30:16Z], 30] 20:47:55.599 [debug] QUERY OK source="media_items" db=0.7ms idle=251.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "47579430-5607-4a7d-8bcc-e7d982becd28", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 02:47:55Z], ~U[2026-01-01 02:47:55Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 20:47:55.599 [debug] QUERY OK source="sources" db=0.1ms idle=149.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:55.599 [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] 20:47:55.600 [debug] QUERY OK source="media_items" db=0.1ms idle=5.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1740622] 20:47:55.600 [debug] Current batch of media processed. Will check again in 1000ms 20:47:56.600 [debug] Current batch of media processed. Will check again in 1000ms 20:47:57.602 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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" => 836, "filename" => "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", "id" => "HAhmUhLVuAc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HAhmUhLVuAc", "playlist_index" => 20, "timestamp" => 1765297812, "title" => "Cloudflare Has A Serious Stability Problem", "upload_date" => "20251209"} 20:47:57.602 [debug] QUERY OK source="sources" db=0.1ms idle=255.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 20:47:57.602 [debug] QUERY OK source="sources" db=0.1ms idle=256.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.607 [debug] QUERY OK source="media_items" db=4.1ms idle=256.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-09 16:30:12Z], 30] 20:47:57.608 [debug] QUERY OK source="media_items" db=0.9ms idle=260.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "61bbf703-5c85-4c98-98b5-c283befdd0b5", "https://www.youtube.com/watch?v=HAhmUhLVuAc", false, "HAhmUhLVuAc", 30, [], 836, false, 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, false, 98, ~U[2025-12-09 16:30:12Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "https://www.youtube.com/watch?v=HAhmUhLVuAc", "HAhmUhLVuAc", 30, 836, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, ~U[2025-12-09 16:30:12Z]] 20:47:57.608 [debug] QUERY OK source="sources" db=0.1ms idle=155.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 20:47:57.609 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:57.609 [debug] QUERY OK source="media_items" db=0.2ms 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 [1732643] 20:47:57.609 [debug] Current batch of media processed. Will check again in 1000ms 20:47:57.632 [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/3a/a4/3aa4248ed142ef4ed80d1221e946ceea49920eb39bfc8971ac263d66b443d8c4.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c9/f3/c9f3bfa6fcba821a3771e5b250c1eeb2762535b28d13b13732848fe873dbc124.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 20:47:57.632 [debug] Gracefully stopping file follower 20:47:57.633 [debug] QUERY OK source="sources" db=0.6ms 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" IN (?)) [30] 20:47:57.633 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [30] 20:47:57.637 [debug] QUERY OK source="media_items" db=3.8ms idle=25.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-31 16:30:17Z], 30] 20:47:57.639 [debug] QUERY OK source="media_items" db=0.8ms idle=28.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "9c1af159-a553-46d5-b896-049a2a3f64ce", "https://www.youtube.com/watch?v=NKPMDddHbSQ", false, "NKPMDddHbSQ", 30, [], 1263, false, 1, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, false, 98, ~U[2025-12-31 16:30:17Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "There has been quite a bit of movement in the X11 space and one such movement is the creation of a new X11 server going by the name Phoenix and written in the Zig language. It's not trying to just be Xorg, it wants to be a modern server and learn from 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==========\nPhoenix Server: git.dec05eba.com/phoenix/about/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Xorg #Wayland #OpenSource #FOSS #Linux\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Phoenix: A New Linux X11 Server For 2026!?!", "https://www.youtube.com/watch?v=NKPMDddHbSQ", "NKPMDddHbSQ", 30, 1263, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123100_Phoenix: A New Linux X11 Server For 2026!?!.mp4", false, ~U[2025-12-31 16:30:17Z]] 20:47:57.639 [debug] QUERY OK source="sources" db=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] 20:47:57.643 [debug] QUERY OK source="media_items" db=3.6ms 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-30 16:30:20Z], 30] 20:47:57.644 [debug] QUERY OK source="media_items" db=0.9ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "624b66c2-35a5-4099-83f0-095e0008b3b9", "https://www.youtube.com/watch?v=hOUwH5A2oQs", false, "hOUwH5A2oQs", 30, [], 1035, false, 2, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, false, 98, ~U[2025-12-30 16:30:20Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently it was discovered that there was a major vulnerability in MongoDB for the past 7 years that effects every single version in that time and requires basically 0 effort to pull of, and somehow Ubisoft got roped in to this\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCVE 2025-14857: https://nvd.nist.gov/vuln/detail/CVE-2025-14847\nVx Underground Post 1: https://x.com/vxunderground/status/2005008887234048091\nRunning With It: https://x.com/IntCyberDigest/status/2005404577068404947\nVx Underground Post 2: https://x.com/vxunderground/status/2005483271065387461\nMongoDB PR: https://github.com/mongodb/mongo/pull/1152\nMongoBleed Explaner: https://bigdata.2minutestreaming.com/p/mongobleed-explained-simply\nFunny Video: https://youtu.be/b2F-DItXtZs\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#MongoDB #Linux #Vulnerability #Mongobleed #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.", "The MongoBleed Vulnerability Is Absolutely Insane", "https://www.youtube.com/watch?v=hOUwH5A2oQs", "hOUwH5A2oQs", 30, 1035, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e123000_The MongoBleed Vulnerability Is Absolutely Insane.mp4", false, ~U[2025-12-30 16:30:20Z]] 20:47:57.644 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 20:47:57.648 [debug] QUERY OK source="media_items" db=3.5ms 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[2025-12-29 16:30:18Z], 30] 20:47:57.649 [debug] QUERY OK source="media_items" db=1.0ms idle=9.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "aa791b73-ad66-4c3a-b6e0-d848584cf621", "https://www.youtube.com/watch?v=ZYC6_CJMu34", false, "ZYC6_CJMu34", 30, [], 837, false, 3, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, false, 98, ~U[2025-12-29 16:30:18Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "The one thing that I really hate about Linux flatpaks is the way that they're named, but why are they like this, what else uses this system and how do you deal with it.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n=========Resources\nReddit Post: https://www.reddit.com/r/linux/comments/1p57iwa/i_hate_com_org_naming_scheme_for_packages_rant/\nKDE Linux Working On A Fix: https://invent.kde.org/kde-linux/kde-linux/-/issues/97\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Flatpak #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.", "The One Thing I Hate About Linux Flatpaks", "https://www.youtube.com/watch?v=ZYC6_CJMu34", "ZYC6_CJMu34", 30, 837, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122900_The One Thing I Hate About Linux Flatpaks.mp4", false, ~U[2025-12-29 16:30:18Z]] 20:47:57.650 [debug] QUERY OK source="sources" db=0.5ms 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" = ?) [30] 20:47:57.654 [debug] QUERY OK source="media_items" db=3.6ms 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[2025-12-28 16:30:31Z], 30] 20:47:57.656 [debug] QUERY OK source="media_items" db=1.0ms idle=9.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "89061862-4a18-457b-aec4-d53534cbb1ed", "https://www.youtube.com/watch?v=upKM5mViQrY", false, "upKM5mViQrY", 30, [], 1354, false, 4, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, false, 98, ~U[2025-12-28 16:30:31Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "If there's one thing that is generally disliked on Linux, that would be Dbus but making any sort of serious attempt to replace it is incredibly difficult because of how ingrained it is to LInux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nFunny Torvalds: https://lwn.net/Articles/649157/\nVaxry Dbus Post: https://blog.vaxry.net/articles/2025-dbusSucks\nArch Wiki D-Bus: https://wiki.archlinux.org/title/D-Bus\nGNOME CORBA: https://stuff.mit.edu/afs/athena/astaff/project/aui/html/corba.html\nKDE DCOB: https://api.kde.org/legacy/3.5-api/kdelibs-apidocs/dcop/html/index.html\nGNOME Keyring: https://wiki.archlinux.org/title/GNOME/Keyring\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Dbus #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\n#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.", "It's Time To Make A Major Change On Linux", "https://www.youtube.com/watch?v=upKM5mViQrY", "upKM5mViQrY", 30, 1354, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122800_It's Time To Make A Major Change On Linux.mp4", false, ~U[2025-12-28 16:30:31Z]] 20:47:57.656 [debug] QUERY OK source="sources" db=0.5ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.660 [debug] QUERY OK source="media_items" db=3.7ms 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[2025-12-27 16:30:05Z], 30] 20:47:57.664 [debug] QUERY OK source="media_items" db=3.0ms idle=10.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "5ad3cf82-8373-455e-9320-8c6599002b61", "https://www.youtube.com/watch?v=Aim-akCtpzM", false, "Aim-akCtpzM", 30, [], 773, false, 5, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, false, 98, ~U[2025-12-27 16:30:05Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "To get ready for the next Cloudflare outage why not just start rolling your own Cloudflare era pages and here's a tool to do exactly 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==========\nDecember Outage: https://blog.cloudflare.com/5-december-2025-outage/\nNovember Outage: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare's Future Plans: https://blog.cloudflare.com/fail-small-resilience-plan/\nClouflare Error Page: https://github.com/donlon/cloudflare-error-page\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Prepping For The Next Cloudflare Outage", "https://www.youtube.com/watch?v=Aim-akCtpzM", "Aim-akCtpzM", 30, 773, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122700_Prepping For The Next Cloudflare Outage.mp4", false, ~U[2025-12-27 16:30:05Z]] 20:47:57.664 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [30] 20:47:57.668 [debug] QUERY OK source="media_items" db=3.6ms 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-25 16:30:04Z], 30] 20:47:57.670 [debug] QUERY OK source="media_items" db=0.9ms idle=12.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "42c0727c-5015-468e-9af6-8509c2a7503a", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", false, "Db_Nl8vHs9A", 30, [], 1067, false, 6, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, false, 98, ~U[2025-12-25 16:30:04Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Mozilla has a new CEO and do you know what that means, it means that Mozilla is in for another shift in direction like has been happening the past few years.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEnzor DeMeo Announcement: https://blog.mozilla.org/en/mozilla/leadership/mozillas-next-chapter-anthony-enzor-demeo-new-ceo/\nLaura Chambers Announcement: https://blog.mozilla.org/en/mozilla/a-new-chapter-for-mozilla-laura-chambers-expanded-role/\nMozilla Advertising: https://blog.mozilla.org/en/mozilla/improving-online-advertising/\nThe Double Bottom Line: https://blog.mozilla.org/wp-content/blogs.dir/278/files/2025/11/Mozilla-Summary-Portfolio-Strategy.pdf\nThe Verge Article: https://www.theverge.com/tech/845216/mozilla-ceo-anthony-enzor-demeo\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Mozilla Firefox's Future Is Going To Be Interesting", "https://www.youtube.com/watch?v=Db_Nl8vHs9A", "Db_Nl8vHs9A", 30, 1067, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122500_Mozilla Firefox's Future Is Going To Be Interesting.mp4", false, ~U[2025-12-25 16:30:04Z]] 20:47:57.670 [debug] QUERY OK source="sources" db=0.5ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.674 [debug] QUERY OK source="media_items" db=3.6ms 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[2025-12-24 16:30:22Z], 30] 20:47:57.675 [debug] QUERY OK source="media_items" db=0.9ms idle=9.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "9d9a70fb-248a-4abf-b373-f0b7a04c732e", "https://www.youtube.com/watch?v=WTatQTpRWPs", false, "WTatQTpRWPs", 30, [], 933, false, 7, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, false, 98, ~U[2025-12-24 16:30:22Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently the first CVE in the Linux kernel involved Rust code was marked, but what was this CVE, how did it happen it and was it that big of a deal.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nGreg KH Post: https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM\nCVE Post: https://lore.kernel.org/all/2025121614-CVE-2025-68260-558d@gregkh/\nPhoronix Article: https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel\nCVE Process: https://docs.kernel.org/process/cve.html\nGreg Talk: https://www.youtube.com/watch?v=Rg_VPMT0XXw\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Truth Of The First Linux Kernel CVE In Rust", "https://www.youtube.com/watch?v=WTatQTpRWPs", "WTatQTpRWPs", 30, 933, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122400_The Truth Of The First Linux Kernel CVE In Rust.mp4", false, ~U[2025-12-24 16:30:22Z]] 20:47:57.676 [debug] QUERY OK source="sources" db=0.5ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.680 [debug] QUERY OK source="media_items" db=3.5ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 16:30:02Z], 30] 20:47:57.681 [debug] QUERY OK source="media_items" db=0.9ms idle=9.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "91d30c5d-8a07-49d1-a4af-3bad8f5a485a", "https://www.youtube.com/watch?v=2-obijeo_bU", false, "2-obijeo_bU", 30, [], 1019, false, 8, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, false, 98, ~U[2025-12-23 16:30:02Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently Arch Linux pushed the 590 NVIDIA drivers and with these they dropped support for Maxwell and Pascal GPUs, the 900 and 10 series GPUs and Arch Linux didn't implement a migration strategy for this so good luck with 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==========\nArch Linux Commit: https://gitlab.archlinux.org/archlinux/packaging/packages/nvidia-utils/-/commit/cc7ae772aec0b147f75c0aa4e148f1d97f2c1848\nAnnouncement: https://lists.archlinux.org/archives/list/arch-announce@lists.archlinux.org/thread/AMPPOBL6ZQPEOQ722IE3O5BO3PPWCQNA/\nArch-Update: https://aur.archlinux.org/packages/arch-update\nNvidia Open: https://github.com/NVIDIA/open-gpu-kernel-modules\nCachyOS: https://cachyos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "RIP Perfectly Fine Nvidia GPUs On Arch Linux", "https://www.youtube.com/watch?v=2-obijeo_bU", "2-obijeo_bU", 30, 1019, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122300_RIP Perfectly Fine Nvidia GPUs On Arch Linux.mp4", false, ~U[2025-12-23 16:30:02Z]] 20:47:57.682 [debug] QUERY OK source="sources" db=0.5ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.685 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-22 16:30:16Z], 30] 20:47:57.687 [debug] QUERY OK source="media_items" db=0.8ms idle=9.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "117eb477-2b8b-4444-b726-a87a0fe44517", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", false, "Y_9BrE3JzWY", 30, [], 1008, false, 9, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, false, 98, ~U[2025-12-22 16:30:16Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "I've been having nothing but computer issues lately and nothing has changed with my new AM5 system that I would have been using right now but I'm not getting the performance out of it that I should be getting.\n\nCheck out the podcast: https://techovertea.xyz/youtube\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Let Me Rant About Computers For 16 Minutes", "https://www.youtube.com/watch?v=Y_9BrE3JzWY", "Y_9BrE3JzWY", 30, 1008, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122200_Let Me Rant About Computers For 16 Minutes.mp4", false, ~U[2025-12-22 16:30:16Z]] 20:47:57.687 [debug] QUERY OK source="sources" db=0.5ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.691 [debug] QUERY OK source="media_items" db=3.4ms 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[2025-12-21 16:30:07Z], 30] 20:47:57.692 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "b15eef5a-4707-4c78-8705-a45c348f1dc2", "https://www.youtube.com/watch?v=8PTlYeLBKvI", false, "8PTlYeLBKvI", 30, [], 1190, false, 10, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, false, 98, ~U[2025-12-21 16:30:07Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently the maintainer for LibXML2 just stepped down in what might seem like a case coming out of nowhere but it turns out this was a problem building up a long time.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nLibXML2 Commit: https://gitlab.gnome.org/GNOME/libxml2/-/commit/9c80a89af2fdf4f853892f84e46580f4902658ba\nOther Issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/346\nNew Maintainer: https://gitlab.gnome.org/GNOME/libxml2/-/commit/0704f52ea4cd0cf82253bb2af3f70a09d428629d\nRecent Problem: https://gitlab.gnome.org/GNOME/libxml2/-/issues/976\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #FOSS #OpenSource #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.", "FOSS Is Always One Maintainer From Collapsing", "https://www.youtube.com/watch?v=8PTlYeLBKvI", "8PTlYeLBKvI", 30, 1190, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122100_FOSS Is Always One Maintainer From Collapsing.mp4", false, ~U[2025-12-21 16:30:07Z]] 20:47:57.693 [debug] QUERY OK source="sources" db=0.4ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.696 [debug] QUERY OK source="media_items" db=3.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[2025-12-20 16:30:04Z], 30] 20:47:57.698 [debug] QUERY OK source="media_items" db=0.9ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "ed4653c6-fba6-4182-bbbf-627cfe58a528", "https://www.youtube.com/watch?v=AY5kRPexQz4", false, "AY5kRPexQz4", 30, [], 1179, false, 11, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, false, 98, ~U[2025-12-20 16:30:04Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Linux phones are a weird device branch, unlike on the desktop or the server where Linux has a real foot hold, in the mobile space there's been many attempts but nothing really sticks\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nPinePhone: https://pine64.org/devices/pinephone/\nPostmarket OS: https://wiki.postmarketos.org/wiki/Devices\nUbuntu Touch: https://devices.ubuntu-touch.io/device/fp4/\nFurilabs: https://furilabs.com/\nJolla: https://jolla.com/\nSailfish OS: https://sailfishos.org/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxPhone #Android\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Is This A Serious Attempt At A Linux Phone?", "https://www.youtube.com/watch?v=AY5kRPexQz4", "AY5kRPexQz4", 30, 1179, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e122000_Is This A Serious Attempt At A Linux Phone?.mp4", false, ~U[2025-12-20 16:30:04Z]] 20:47:57.698 [debug] QUERY OK source="sources" db=0.4ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.702 [debug] QUERY OK source="media_items" db=3.3ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-18 16:30:00Z], 30] 20:47:57.703 [debug] QUERY OK source="media_items" db=0.8ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "d7e6f3f5-58ea-4998-bf13-1eb0178458fd", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", false, "3kZJrQNE3Lw", 30, [], 1923, false, 12, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, false, 98, ~U[2025-12-18 16:30:00Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently the COSMIC desktop stable release finally came out, I've been watching this project from the very start and we're finally here today.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSystem76 Building Desktop: https://www.omgubuntu.co.uk/2021/11/system76-is-building-its-own-desktop-environment\nCarl Richell COSMIC Letter: https://blog.system76.com/post/pop-os-letter-from-our-founder\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#COSMIC #KDE #GNOME #Linux #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "KDE And GNOME Finally Have A Real Competitor", "https://www.youtube.com/watch?v=3kZJrQNE3Lw", "3kZJrQNE3Lw", 30, 1923, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121800_KDE And GNOME Finally Have A Real Competitor.mp4", false, ~U[2025-12-18 16:30:00Z]] 20:47:57.703 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.707 [debug] QUERY OK source="media_items" db=3.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[2025-12-17 16:30:01Z], 30] 20:47:57.708 [debug] QUERY OK source="media_items" db=0.8ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "710bae16-e114-402d-9999-bfae4b0fe98b", "https://www.youtube.com/watch?v=5AePMwjV3E4", false, "5AePMwjV3E4", 30, [], 966, false, 13, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, false, 98, ~U[2025-12-17 16:30:01Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "I don't even know what to say about this email thread but an absolutely crazy person calling themselves Socrates of Athens found my email address\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nEmail: https://pastebin.com/zdCV6heZ\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #Email #FOSS #Gmail\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if 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 Craziest Linux User Found My Email Address", "https://www.youtube.com/watch?v=5AePMwjV3E4", "5AePMwjV3E4", 30, 966, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121700_The Craziest Linux User Found My Email Address.mp4", false, ~U[2025-12-17 16:30:01Z]] 20:47:57.709 [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" = ?) [30] 20:47:57.712 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-16 16:30:17Z], 30] 20:47:57.714 [debug] QUERY OK source="media_items" db=1.0ms idle=8.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "086615ca-5c74-4fdb-b00f-eb43553af139", "https://www.youtube.com/watch?v=kwXn_GSd8cA", false, "kwXn_GSd8cA", 30, [], 1526, false, 14, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, false, 98, ~U[2025-12-16 16:30:17Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "It's been a long 5 years to get here but the Rust For Linux Kernel experiment has ended but it ended in success and now Rust is here to stay long term\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nRust Android Binder: https://www.phoronix.com/news/Rust-Binder-For-Linux-6.18\nLWN Post 1: https://lwn.net/Articles/1049831/\nWedson Steps Down: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/\nThe Video: https://youtu.be/WiPp9YEBV0Q?t=1529\nAlex Gaynor Steps Down: https://lore.kernel.org/rust-for-linux/CANiq72nSaYSGBqX0btuHg5OUvGA3NsKAFnEqTnGTp3LYs_Ryww@mail.gmail.com/T/#m47738174bf22179953070d2ea772b7878b48d82c\nTorvalds On Rust Maintainers: https://www.phoronix.com/news/Torvalds-On-Rust-Maintainers\nLwn Post 2: https://lwn.net/SubscriberLink/1050174/63aa7da43214c3ce/\nKernel C++: https://harmful.cat-v.org/software/c++/linus\nKernel C++ Again: https://www.phoronix.com/news/CPP-Linux-Kernel-2024-Discuss\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Rust #Linux #LinuxKernel #OpenSource #FOSS\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "The Rust Linux Kernel Experiment Is Finally Over!!", "https://www.youtube.com/watch?v=kwXn_GSd8cA", "kwXn_GSd8cA", 30, 1526, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121600_The Rust Linux Kernel Experiment Is Finally Over!!.mp4", false, ~U[2025-12-16 16:30:17Z]] 20:47:57.714 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.718 [debug] QUERY OK source="media_items" db=3.4ms idle=6.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-15 16:30:07Z], 30] 20:47:57.719 [debug] QUERY OK source="media_items" db=0.8ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "d425e5a9-fdf9-4f86-927f-5bc1c4f832c2", "https://www.youtube.com/watch?v=IB_0rR0imno", false, "IB_0rR0imno", 30, [], 808, false, 15, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, false, 98, ~U[2025-12-15 16:30:07Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "I've always said you should split your home and root directories into separate partitions even though it's going to cost you some storage space and once again that has saved me a lot of hassle dealing with my system.\n\n==========Support The Channel==========\n► Patreon: https://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🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Linux #OpenSource #FOSS #LinuxTutorial\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "I Was Right Again About My Linux Home Directory", "https://www.youtube.com/watch?v=IB_0rR0imno", "IB_0rR0imno", 30, 808, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121500_I Was Right Again About My Linux Home Directory.mp4", false, ~U[2025-12-15 16:30:07Z]] 20:47:57.720 [debug] QUERY OK source="sources" db=0.4ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.723 [debug] QUERY OK source="media_items" db=3.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[2025-12-14 16:30:06Z], 30] 20:47:57.724 [debug] QUERY OK source="media_items" db=0.9ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "efab7708-8949-408c-9ef8-fa503efa751e", "https://www.youtube.com/watch?v=LbK_xreMSio", false, "LbK_xreMSio", 30, [], 981, false, 16, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, false, 98, ~U[2025-12-14 16:30:06Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Sometimes it's fun to just look at a completely inconsequential project and that's exactly what we're doing today, ice2k.sys an attempt at recreating the Windows 2000 experience on Linux\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nice2k sys Website: https://toiletflusher.neocities.org/ice2k/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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 #WindowManager #Xorg #LinuxDesktop #FOSS #OpenSource\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "This Is The Kind Project I Love Linux For!!", "https://www.youtube.com/watch?v=LbK_xreMSio", "LbK_xreMSio", 30, 981, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121400_This Is The Kind Project I Love Linux For!!.mp4", false, ~U[2025-12-14 16:30:06Z]] 20:47:57.725 [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" = ?) [30] 20:47:57.728 [debug] QUERY OK source="media_items" db=3.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[2025-12-13 16:30:18Z], 30] 20:47:57.730 [debug] QUERY OK source="media_items" db=1.0ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "445e8f18-2a9e-4f73-983e-7e05d68c4ba1", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", false, "OEPcLRH-Eiw", 30, [], 780, false, 17, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, false, 98, ~U[2025-12-13 16:30:18Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Now that Valve's killing off the 32 bit Windows version of Steam, it's time to ask the question, where the hell is the 64 bit Linux client and all the surrounding tooling.\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nSteam Article: https://help.steampowered.com/en/faqs/view/49A1-B944-48B8-FF00\nSteam Update: https://store.steampowered.com/news/group/4397053/view/599669707226744433\nGamingOnLinux: https://www.gamingonlinux.com/2025/11/valve-put-up-a-new-steam-linux-runtime-4-0-with-a-move-towards-64-bit/\nSteam For Linux Issue: https://github.com/ValveSoftware/steam-for-linux/issues/3518\nWine Staging Change: ttps://archlinux.org/news/transition-to-the-new-wow64-wine-and-wine-staging/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Valve, We NEED A 64 Bit Steam Client On Linux!!", "https://www.youtube.com/watch?v=OEPcLRH-Eiw", "OEPcLRH-Eiw", 30, 780, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121300_Valve, We NEED A 64 Bit Steam Client On Linux!!.mp4", false, ~U[2025-12-13 16:30:18Z]] 20:47:57.730 [debug] QUERY OK source="sources" db=0.4ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.734 [debug] QUERY OK source="media_items" db=3.3ms 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[2025-12-11 16:30:11Z], 30] 20:47:57.735 [debug] QUERY OK source="media_items" db=0.8ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "0fdfc583-fcd4-4499-944c-31158801633d", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", false, "PmjBZDGJzDQ", 30, [], 2001, false, 18, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, false, 98, ~U[2025-12-11 16:30:11Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "What do Arch Linux users actually run, well I can't say for certain but I would say that looking at pkgstats the opt in telemetry for Arch Linux is going to give us a pretty good ball park set of figures\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\npkgstats: https://wiki.archlinux.org/title/Pkgstats\nDebian Popcon: https://popcon.debian.org/\nArch Linux Telemetry: https://pkgstats.archlinux.de\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.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#ArchLinux #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.", "The Scientifically Correct Arch Linux User", "https://www.youtube.com/watch?v=PmjBZDGJzDQ", "PmjBZDGJzDQ", 30, 2001, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121100_The Scientifically Correct Arch Linux User.mp4", false, ~U[2025-12-11 16:30:11Z]] 20:47:57.736 [debug] QUERY OK source="sources" db=0.4ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.739 [debug] QUERY OK source="media_items" db=3.3ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-10 16:30:16Z], 30] 20:47:57.740 [debug] QUERY OK source="media_items" db=0.8ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "96b67607-633e-4de1-bd3c-41d7d3a27e43", "https://www.youtube.com/watch?v=N_X7clyPE5Q", false, "N_X7clyPE5Q", 30, [], 894, false, 19, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, false, 98, ~U[2025-12-10 16:30:16Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "There's a lot of talk of the death of Xorg, and whilst Wayland is the direction that thing are moving that doesn't mean that if you hate it then you can't change that course. That doesn't mean going and getting angry, it means actually going and getting involved in the future of projects you 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=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "You Control The Future Of Xorg On Linux!!", "https://www.youtube.com/watch?v=N_X7clyPE5Q", "N_X7clyPE5Q", 30, 894, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e121000_You Control The Future Of Xorg On Linux!!.mp4", false, ~U[2025-12-10 16:30:16Z]] 20:47:57.741 [debug] QUERY OK source="sources" db=0.3ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:47:57.744 [debug] QUERY OK source="media_items" db=3.2ms 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[2025-12-09 16:30:12Z], 30] 20:47:57.745 [debug] QUERY OK source="media_items" db=0.8ms idle=8.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "cc3cddc0-cd51-41cb-b22e-fa3c63c8ab55", "https://www.youtube.com/watch?v=HAhmUhLVuAc", false, "HAhmUhLVuAc", 30, [], 836, false, 20, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, false, 98, ~U[2025-12-09 16:30:12Z], ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], "Recently Cloudflare had another outage, that makes it 2 times in 2 weeks so there's clearly something very wrong happening at Cloudflare and this time whilst it wasn't as bad it did cause a massive outage\n\n==========Support The Channel==========\n► Patreon: https://brodierobertson.xyz/patreon\n► Paypal: https://brodierobertson.xyz/paypal\n► Liberapay: https://brodierobertson.xyz/liberapay\n► Amazon USA: https://brodierobertson.xyz/amazonusa\n\n==========Resources==========\nCloudflare November: https://blog.cloudflare.com/18-november-2025-outage/\nCloudflare December: https://blog.cloudflare.com/5-december-2025-outage/\n\n=========Video Platforms==========\n🎥 Odysee: https://brodierobertson.xyz/odysee\n🎥 Podcast: https://techovertea.xyz/youtube\n🎮 Gaming: https://brodierobertson.xyz/gaming\n\n==========Social Media==========\n🎤 Discord: https://brodierobertson.xyz/discord\n🐦 Twitter: https://brodierobertson.xyz/twitter\n🌐 Mastodon: https://brodierobertson.xyz/mastodon\n🖥️ GitHub: https://brodierobertson.xyz/github\n\n==========Credits==========\n🎨 Channel Art:\nProfile Picture:\nhttps://www.instagram.com/supercozman_draws/\n\n#Cloudflare #React #Rust #CVE #Vulnerability\n\n🎵 Ending music\nTrack: Debris & Jonth - Game Time [NCS Release]\nMusic provided by NoCopyrightSounds.\nWatch: https://www.youtube.com/watch?v=yDTvvOTie0w \nFree Download / Stream: http://ncs.io/GameTime\n\nDISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.", "Cloudflare Has A Serious Stability Problem", "https://www.youtube.com/watch?v=HAhmUhLVuAc", "HAhmUhLVuAc", 30, 836, false, "/downloads/chris/tubes/Brodie Robertson_[UCld68syR8Wi-GY_n4CaoJGA]/Season 2025/s2025e120900_Cloudflare Has A Serious Stability Problem.mp4", false, ~U[2025-12-09 16:30:12Z]] 20:47:57.746 [debug] QUERY OK source="sources" db=0.3ms idle=6.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z], 30] 20:47:57.750 [debug] QUERY OK source="media_items" db=3.5ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 20:47:57.754 [debug] QUERY OK source="media_items" db=3.8ms idle=8.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] 20:47:57.754 [debug] QUERY OK source="media_items" db=0.7ms idle=9.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 20:47:57.756 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88169, 30, ~U[2026-01-01 02:47:57Z], ~U[2026-01-01 02:47:57Z]] 20:47:57.756 [info] {"args":{"id":30},"id":88161,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":42368476,"event":"job:stop","queue_time":813099,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:48:00.938 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:48:17.962 [info] {"source":"oban","duration":4135,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:48:47.966 [info] {"source":"oban","duration":3380,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:00.940 [info] {"source":"oban","duration":514,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:49:17.971 [info] {"source":"oban","duration":3682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:47.645 [info] {"args":{"id":51},"id":88168,"meta":{},"system_time":1767235787645040219,"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"]} 20:49:47.645 [debug] QUERY OK source="sources" db=0.2ms idle=298.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:49:47.646 [debug] QUERY OK source="settings" db=0.4ms idle=298.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:47.646 [debug] QUERY OK source="media_profiles" db=0.3ms idle=299.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:47.647 [debug] QUERY OK source="settings" db=0.3ms 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 [] 20:49:47.647 [debug] Fetching recent media IDs from YouTube RSS feed for source: UCUMwY9iS8oMyWDYIe6_RmoA 20:49:47.976 [info] {"source":"oban","duration":4337,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:49:48.030 [debug] Media ids fetched from RSS: ["9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:49:48.031 [debug] QUERY OK source="media_items" db=0.8ms idle=385.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, "9-CIInQhBUs", "i8h4eTcxF9E", "AiSl4vf40WU", "rWMQ-g2QDsI", "sqm4-B07LsE", "3e-nauaCkgo", "B0yAy2j-9V0", "6Lxk9NMeWHg", "7Opkmr7kAAk", "kul0z3OTmVM", "Kdpfhj3VM04", "DhY3fu-YgHU", "CwfKlX3rA6E", "voRBS0r4EyI", "bq9O99TgFv4"] 20:49:48.032 [debug] QUERY OK source="media_items" db=0.4ms idle=386.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_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] 20:49:48.033 [debug] QUERY OK source="tasks" db=0.3ms idle=57.2ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88170, 51, ~U[2026-01-01 02:49:48Z], ~U[2026-01-01 02:49:48Z]] 20:49:48.034 [info] {"args":{"id":51},"id":88168,"meta":{},"state":"success","max_attempts":20,"queue":"fast_indexing","worker":"Pinchflat.FastIndexing.FastIndexingWorker","source":"oban","duration":388873,"event":"job:stop","queue_time":671714,"attempt":1,"tags":["media_source","fast_indexing","show_in_dashboard"]} 20:50:00.940 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:50:17.981 [info] {"source":"oban","duration":4919,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:47.986 [info] {"source":"oban","duration":3585,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:00.941 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:51:17.991 [info] {"source":"oban","duration":3878,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:47.996 [info] {"source":"oban","duration":3816,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:00.942 [info] {"source":"oban","duration":157,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:52:18.001 [info] {"source":"oban","duration":4009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:48.005 [info] {"source":"oban","duration":2817,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:00.943 [info] {"source":"oban","duration":150,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:53:18.009 [info] {"source":"oban","duration":2887,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:48.012 [info] {"source":"oban","duration":2140,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:00.944 [info] {"source":"oban","duration":168,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:54:18.017 [info] {"source":"oban","duration":3612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 20:54:48.020 [info] {"source":"oban","duration":2908,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:57.054 [info] GET /sources/26/edit 20:54:57.054 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "26"} Pipelines: [:browser] 20:54:57.055 [debug] QUERY OK source="sources" db=0.2ms idle=1708.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:54:57.055 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1708.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" [] 20:54:57.055 [debug] QUERY OK source="settings" db=0.0ms idle=1708.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:57.055 [debug] QUERY OK source="settings" db=0.1ms idle=1709.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:57.056 [debug] QUERY OK source="settings" db=0.0ms idle=951.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:57.057 [info] Sent 200 in 3ms 20:54:57.554 [info] GET /media_profiles/2 20:54:57.554 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 20:54:57.554 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=499.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [2] 20:54:57.555 [debug] QUERY OK source="sources" db=0.0ms idle=499.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", 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" [2] 20:54:57.555 [debug] QUERY OK source="settings" db=0.0ms idle=499.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:57.555 [debug] QUERY OK source="settings" db=0.0ms idle=499.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:57.555 [debug] QUERY OK source="settings" db=0.0ms idle=449.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:57.556 [info] Sent 200 in 2ms 20:54:58.054 [info] GET /sources/17/edit 20:54:58.054 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "17"} Pipelines: [:browser] 20:54:58.054 [debug] QUERY OK source="sources" db=0.2ms idle=499.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [17] 20:54:58.055 [debug] QUERY OK source="media_profiles" db=0.1ms idle=499.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" [] 20:54:58.055 [debug] QUERY OK source="settings" db=0.1ms idle=500.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:58.055 [debug] QUERY OK source="settings" db=0.1ms idle=500.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:58.056 [debug] QUERY OK source="settings" db=0.1ms idle=500.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:58.057 [info] Sent 200 in 3ms 20:54:58.555 [info] GET /sources/55/edit 20:54:58.555 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "55"} Pipelines: [:browser] 20:54:58.556 [debug] QUERY OK source="sources" db=0.2ms idle=500.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:54:58.556 [debug] QUERY OK source="media_profiles" db=0.1ms idle=500.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:54:58.556 [debug] QUERY OK source="settings" db=0.0ms idle=501.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:58.557 [debug] QUERY OK source="settings" db=0.1ms idle=500.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:58.557 [debug] QUERY OK source="settings" db=0.0ms idle=450.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:58.558 [info] Sent 200 in 3ms 20:54:59.078 [info] GET /sources/18/edit 20:54:59.078 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "18"} Pipelines: [:browser] 20:54:59.078 [debug] QUERY OK source="sources" db=0.2ms idle=522.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 20:54:59.079 [debug] QUERY OK source="media_profiles" db=0.1ms idle=522.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:54:59.079 [debug] QUERY OK source="settings" db=0.0ms idle=522.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:59.079 [debug] QUERY OK source="settings" db=0.0ms idle=522.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:59.079 [debug] QUERY OK source="settings" db=0.0ms idle=522.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:59.081 [info] Sent 200 in 3ms 20:54:59.578 [info] GET /sources/43/edit 20:54:59.578 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "43"} Pipelines: [:browser] 20:54:59.579 [debug] QUERY OK source="sources" db=0.1ms idle=499.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:54:59.579 [debug] QUERY OK source="media_profiles" db=0.1ms idle=500.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" [] 20:54:59.579 [debug] QUERY OK source="settings" db=0.0ms idle=500.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:59.580 [debug] QUERY OK source="settings" db=0.0ms idle=500.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:59.580 [debug] QUERY OK source="settings" db=0.0ms idle=471.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:54:59.581 [info] Sent 200 in 3ms 20:55:00.078 [info] GET /sources/38/edit 20:55:00.078 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "38"} Pipelines: [:browser] 20:55:00.079 [debug] QUERY OK source="sources" db=0.1ms idle=499.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:00.079 [debug] QUERY OK source="media_profiles" db=0.0ms idle=499.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" [] 20:55:00.079 [debug] QUERY OK source="settings" db=0.0ms idle=499.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.079 [debug] QUERY OK source="settings" db=0.0ms idle=499.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.080 [debug] QUERY OK source="settings" db=0.0ms idle=499.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.081 [info] Sent 200 in 3ms 20:55:00.379 [info] GET /sources/37/edit 20:55:00.379 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "37"} Pipelines: [:browser] 20:55:00.380 [debug] QUERY OK source="sources" db=0.1ms idle=300.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:00.380 [debug] QUERY OK source="media_profiles" db=0.1ms idle=300.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" [] 20:55:00.380 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:55:00.380 [debug] QUERY OK source="settings" db=0.0ms idle=300.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.381 [debug] QUERY OK source="settings" db=0.0ms idle=271.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.382 [info] Sent 200 in 2ms 20:55:00.681 [info] GET /sources/30/edit 20:55:00.681 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "30"} Pipelines: [:browser] 20:55:00.682 [debug] QUERY OK source="sources" db=0.1ms idle=301.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 20:55:00.682 [debug] QUERY OK source="media_profiles" db=0.1ms idle=301.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:55:00.682 [debug] QUERY OK source="settings" db=0.0ms idle=301.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.682 [debug] QUERY OK source="settings" db=0.0ms idle=301.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.683 [debug] QUERY OK source="settings" db=0.0ms idle=301.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.684 [info] Sent 200 in 3ms 20:55:00.945 [info] {"source":"oban","duration":211,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:55:00.982 [info] GET /sources/29/edit 20:55:00.982 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "29"} Pipelines: [:browser] 20:55:00.983 [debug] QUERY OK source="sources" db=0.1ms idle=300.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [29] 20:55:00.983 [debug] QUERY OK source="media_profiles" db=0.1ms idle=300.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:55:00.983 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:55:00.984 [debug] QUERY OK source="settings" db=0.0ms idle=300.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:00.984 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:55:00.985 [info] Sent 200 in 3ms 20:55:01.283 [info] GET /sources/35/edit 20:55:01.283 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "35"} Pipelines: [:browser] 20:55:01.284 [debug] QUERY OK source="sources" db=0.1ms idle=300.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:01.284 [debug] QUERY OK source="media_profiles" db=0.1ms idle=300.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" [] 20:55:01.284 [debug] QUERY OK source="settings" db=0.1ms idle=300.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.285 [debug] QUERY OK source="settings" db=0.1ms idle=300.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.285 [debug] QUERY OK source="settings" db=0.1ms idle=173.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.287 [info] Sent 200 in 3ms 20:55:01.584 [info] GET /sources/9/edit 20:55:01.584 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 20:55:01.584 [debug] QUERY OK source="sources" db=0.1ms idle=300.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:01.585 [debug] QUERY OK source="media_profiles" db=0.0ms idle=300.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" [] 20:55:01.585 [debug] QUERY OK source="settings" db=0.0ms idle=300.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.585 [debug] QUERY OK source="settings" db=0.1ms idle=300.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.585 [debug] QUERY OK source="settings" db=0.0ms idle=300.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.587 [info] Sent 200 in 3ms 20:55:01.884 [info] GET /sources/22/edit 20:55:01.884 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "22"} Pipelines: [:browser] 20:55:01.884 [debug] QUERY OK source="sources" db=0.1ms idle=299.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:01.885 [debug] QUERY OK source="media_profiles" db=0.1ms idle=299.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" [] 20:55:01.885 [debug] QUERY OK source="settings" db=0.0ms idle=300.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.885 [debug] QUERY OK source="settings" db=0.0ms idle=299.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.885 [debug] QUERY OK source="settings" db=0.0ms idle=299.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:01.887 [info] Sent 200 in 2ms 20:55:02.121 [info] GET /sources/52/edit 20:55:02.121 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "52"} Pipelines: [:browser] 20:55:02.121 [debug] QUERY OK source="sources" db=0.1ms idle=236.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:02.122 [debug] QUERY OK source="media_profiles" db=0.1ms idle=236.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" [] 20:55:02.122 [debug] QUERY OK source="settings" db=0.1ms idle=236.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.122 [debug] QUERY OK source="settings" db=0.0ms idle=236.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.122 [debug] QUERY OK source="settings" db=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 [] 20:55:02.124 [info] Sent 200 in 3ms 20:55:02.347 [info] GET /sources/46/edit 20:55:02.347 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "46"} Pipelines: [:browser] 20:55:02.348 [debug] QUERY OK source="sources" db=0.1ms idle=226.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:55:02.348 [debug] QUERY OK source="media_profiles" db=0.1ms idle=226.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:55:02.348 [debug] QUERY OK source="settings" db=0.0ms idle=226.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.348 [debug] QUERY OK source="settings" db=0.0ms idle=226.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.349 [debug] QUERY OK source="settings" db=0.0ms idle=226.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.350 [info] Sent 200 in 2ms 20:55:02.573 [info] GET /sources/26 20:55:02.573 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "26"} Pipelines: [:browser] 20:55:02.574 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 20:55:02.574 [debug] QUERY OK source="media_profiles" db=0.1ms idle=225.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:02.575 [debug] QUERY OK source="tasks" db=1.3ms idle=225.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [26, "executing", "available", "scheduled", "retryable"] 20:55:02.576 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=227.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" = ?) [87899] 20:55:02.576 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:55:02.576 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.576 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.577 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 20:55:02.577 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 20:55:02.578 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [26, 10, 0] 20:55:02.578 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 20:55:02.578 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [26] 20:55:02.578 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [26, 10, 0] 20:55:02.579 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 20:55:02.579 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 20:55:02.579 [debug] QUERY OK source="media_items" db=0.2ms idle=1.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 20:55:02.580 [info] Sent 200 in 6ms 20:55:02.800 [info] GET /sources/new 20:55:02.800 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 20:55:02.800 [debug] QUERY OK source="media_profiles" db=0.3ms idle=221.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" [] 20:55:02.801 [debug] QUERY OK source="settings" db=0.1ms idle=222.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.801 [debug] QUERY OK source="settings" db=0.0ms idle=222.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.801 [debug] QUERY OK source="settings" db=0.0ms idle=222.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.802 [debug] QUERY OK source="settings" db=0.0ms idle=221.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.802 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:02.803 [info] Sent 200 in 3ms 20:55:03.026 [info] GET /sources/17 20:55:03.026 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "17"} Pipelines: [:browser] 20:55:03.026 [debug] QUERY OK source="sources" db=0.1ms idle=225.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:03.027 [debug] QUERY OK source="media_profiles" db=0.1ms idle=225.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:03.030 [debug] QUERY OK source="tasks" db=2.7ms idle=225.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 (?,?,?,?)) [17, "executing", "available", "scheduled", "retryable"] 20:55:03.030 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=228.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" = ?) [87924] 20:55:03.030 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:55:03.030 [debug] QUERY OK source="settings" db=0.0ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.030 [debug] QUERY OK source="settings" db=0.0ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.031 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [17] 20:55:03.031 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 20:55:03.032 [debug] QUERY OK source="media_items" db=0.3ms 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 ? [17, 10, 0] 20:55:03.032 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [17] 20:55:03.032 [debug] QUERY OK source="media_items" db=0.0ms idle=1.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [17] 20:55:03.033 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [17, 10, 0] 20:55:03.033 [debug] QUERY OK source="sources" db=0.1ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [17] 20:55:03.033 [debug] QUERY OK source="media_items" db=0.1ms idle=1.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [17] 20:55:03.034 [debug] QUERY OK source="media_items" db=0.3ms idle=1.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 20:55:03.034 [info] Sent 200 in 8ms 20:55:03.251 [info] GET /sources/18 20:55:03.251 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "18"} Pipelines: [:browser] 20:55:03.251 [debug] QUERY OK source="sources" db=0.2ms idle=218.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 20:55:03.252 [debug] QUERY OK source="media_profiles" db=0.1ms idle=218.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:03.252 [debug] QUERY OK source="tasks" db=0.2ms idle=218.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 (?,?,?,?)) [18, "executing", "available", "scheduled", "retryable"] 20:55:03.252 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=218.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" = ?) [87922] 20:55:03.252 [debug] QUERY OK source="settings" db=0.0ms idle=137.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.253 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.253 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.254 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 20:55:03.254 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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")))) [18] 20:55:03.255 [debug] QUERY OK source="media_items" db=0.4ms idle=1.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [18, 10, 0] 20:55:03.255 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 20:55:03.255 [debug] QUERY OK source="media_items" db=0.0ms idle=2.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [18] 20:55:03.255 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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 ? [18, 10, 0] 20:55:03.256 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 20:55:03.256 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [18] 20:55:03.257 [debug] QUERY OK source="media_items" db=0.4ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [18, 10, 0] 20:55:03.257 [info] Sent 200 in 6ms 20:55:03.431 [info] GET /sources/38 20:55:03.431 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "38"} Pipelines: [:browser] 20:55:03.432 [debug] QUERY OK source="sources" db=0.1ms idle=176.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:03.432 [debug] QUERY OK source="media_profiles" db=0.1ms idle=176.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:03.435 [debug] QUERY OK source="tasks" db=2.3ms idle=176.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"] 20:55:03.435 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=178.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" = ?) [88163] 20:55:03.435 [debug] QUERY OK source="settings" db=0.0ms 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 [] 20:55:03.435 [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 [] 20:55:03.435 [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 [] 20:55:03.436 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:55:03.437 [debug] QUERY OK source="media_items" db=0.8ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [38] 20:55:03.438 [debug] QUERY OK source="media_items" db=0.9ms idle=2.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [38, 10, 0] 20:55:03.439 [debug] QUERY OK source="sources" db=0.0ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:55:03.439 [debug] QUERY OK source="media_items" db=0.0ms idle=3.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [38] 20:55:03.440 [debug] QUERY OK source="media_items" db=0.7ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [38, 10, 0] 20:55:03.440 [debug] QUERY OK source="sources" db=0.0ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [38] 20:55:03.440 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [38] 20:55:03.442 [debug] QUERY OK source="media_items" db=0.9ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [38, 10, 0] 20:55:03.442 [info] Sent 200 in 10ms 20:55:03.613 [info] GET /sources/9 20:55:03.613 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "9"} Pipelines: [:browser] 20:55:03.614 [debug] QUERY OK source="sources" db=0.1ms idle=174.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:03.614 [debug] QUERY OK source="media_profiles" db=0.1ms idle=174.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" = ?) [3] 20:55:03.614 [debug] QUERY OK source="tasks" db=0.1ms idle=174.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 (?,?,?,?)) [9, "executing", "available", "scheduled", "retryable"] 20:55:03.615 [debug] QUERY OK source="settings" db=0.0ms idle=174.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.615 [debug] QUERY OK source="settings" db=0.0ms idle=173.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.615 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.616 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 20:55:03.616 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [9] 20:55:03.617 [debug] QUERY OK source="media_items" db=0.5ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 20:55:03.618 [debug] QUERY OK source="sources" db=0.0ms idle=2.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 20:55:03.618 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [9] 20:55:03.618 [debug] QUERY OK source="media_items" db=0.3ms idle=2.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 20:55:03.618 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [9] 20:55:03.619 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [9] 20:55:03.619 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [9, 10, 0] 20:55:03.620 [info] Sent 200 in 6ms 20:55:03.795 [info] GET /sources/22 20:55:03.795 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "22"} Pipelines: [:browser] 20:55:03.795 [debug] QUERY OK source="sources" db=0.2ms idle=177.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:03.796 [debug] QUERY OK source="media_profiles" db=0.1ms idle=177.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:03.796 [debug] QUERY OK source="tasks" db=0.6ms idle=177.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 (?,?,?,?)) [22, "executing", "available", "scheduled", "retryable"] 20:55:03.797 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=177.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" = ?) [87910] 20:55:03.797 [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 [] 20:55:03.797 [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 [] 20:55:03.797 [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 [] 20:55:03.798 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [22] 20:55:03.798 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [22] 20:55:03.799 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [22, 10, 0] 20:55:03.799 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [22] 20:55:03.799 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [22] 20:55:03.799 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [22, 10, 0] 20:55:03.800 [debug] QUERY OK source="sources" db=0.0ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [22] 20:55:03.800 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((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] 20:55:03.800 [debug] QUERY OK source="media_items" db=0.2ms idle=1.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 20:55:03.801 [info] Sent 200 in 6ms 20:55:03.976 [info] GET /sources/46 20:55:03.977 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "46"} Pipelines: [:browser] 20:55:03.977 [debug] QUERY OK source="sources" db=0.1ms idle=177.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 20:55:03.977 [debug] QUERY OK source="media_profiles" db=0.1ms idle=177.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:03.983 [debug] QUERY OK source="tasks" db=5.6ms idle=177.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 (?,?,?,?)) [46, "executing", "available", "scheduled", "retryable"] 20:55:03.983 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=183.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" = ?) [88160] 20:55:03.984 [debug] QUERY OK source="settings" db=0.0ms idle=183.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.984 [debug] QUERY OK source="settings" db=0.0ms idle=6.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.984 [debug] QUERY OK source="settings" db=0.0ms idle=6.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.985 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:55:03.985 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [46] 20:55:03.986 [debug] QUERY OK source="media_items" db=0.5ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [46, 10, 0] 20:55:03.986 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:55:03.986 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [46] 20:55:03.987 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [46, 10, 0] 20:55:03.987 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [46] 20:55:03.987 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [46] 20:55:03.988 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [46, 10, 0] 20:55:03.989 [info] Sent 200 in 12ms 20:55:06.914 [info] GET /sources/52/force_redownload 20:55:06.914 [debug] QUERY OK source="settings" db=0.1ms idle=1568.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.915 [debug] QUERY OK source="settings" db=0.1ms idle=1568.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.915 [info] GET /sources/35/force_redownload 20:55:06.915 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:06.915 [debug] QUERY OK source="settings" db=0.0ms idle=1568.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.915 [debug] QUERY OK source="settings" db=0.0ms idle=1568.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.915 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:06.915 [error] #PID<0.167809.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 1) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/35/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/35/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167809.0>, params: %{}, path_info: ["sources", "35", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/35/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74ELr8MdDWPMAKWID"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/35/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167809.0>, params: %{}, path_info: ["sources", "35", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/35/force_redownload", resp_body: nil, res (truncated) 20:55:06.915 [error] #PID<0.167807.0> running PinchflatWeb.Endpoint (connection #PID<0.167782.0>, stream id 25) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167782.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37184}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167807.0>, params: %{}, path_info: ["sources", "52", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74ELgRali2dIAKWHD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167782.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37184}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167782.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_redownload", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 37184}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167807.0>, params: %{}, path_info: ["sources", "52", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/force_redownload", resp_body: nil, (truncated) 20:55:07.076 [info] GET /sources/55/force_index 20:55:07.077 [debug] QUERY OK source="settings" db=0.1ms idle=954.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.077 [debug] QUERY OK source="settings" db=0.0ms idle=162.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.077 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:07.077 [error] #PID<0.167810.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 2) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/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/55/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167810.0>, params: %{}, path_info: ["sources", "55", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74EyMI9ZLpjQATNYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167810.0>, params: %{}, path_info: ["sources", "55", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:07.253 [info] GET /sources/43/force_index 20:55:07.253 [debug] QUERY OK source="settings" db=0.1ms idle=338.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.254 [debug] QUERY OK source="settings" db=0.0ms idle=338.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.254 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:07.254 [error] #PID<0.167811.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 3) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/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/43/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167811.0>, params: %{}, path_info: ["sources", "43", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74FcVIbpgh0EATNZB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/43/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167811.0>, params: %{}, path_info: ["sources", "43", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:07.465 [info] GET /sources/37/force_index 20:55:07.465 [debug] QUERY OK source="settings" db=0.1ms idle=388.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.465 [debug] QUERY OK source="settings" db=0.0ms idle=388.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.465 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:07.466 [error] #PID<0.167812.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 4) 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.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167812.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.180"}, {"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", "GIZ74GO1RqLF5M8ATNaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/37/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167812.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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/37/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:07.638 [info] GET /sources/30/force_index 20:55:07.638 [debug] QUERY OK source="settings" db=0.1ms idle=514.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.639 [debug] QUERY OK source="settings" db=0.0ms idle=385.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.639 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:07.639 [error] #PID<0.167813.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 5) 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.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167813.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.180"}, {"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", "GIZ74G4Hh4eaNPgATNbB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/30/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167813.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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/30/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:07.819 [info] GET /sources/29/force_index 20:55:07.820 [debug] QUERY OK source="settings" db=0.1ms idle=565.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.820 [debug] QUERY OK source="settings" db=0.1ms idle=354.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:07.820 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:07.820 [error] #PID<0.167814.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 6) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/29/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/29/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/29/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167814.0>, params: %{}, path_info: ["sources", "29", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/29/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74HjVi7VDPJ4ATNcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/29/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/29/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/29/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167814.0>, params: %{}, path_info: ["sources", "29", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/29/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:08.000 [info] GET /sources/35/force_index 20:55:08.000 [debug] QUERY OK source="settings" db=0.1ms idle=534.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.000 [debug] QUERY OK source="settings" db=0.0ms idle=361.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.000 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:08.000 [error] #PID<0.167815.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 7) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/35/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/35/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167815.0>, params: %{}, path_info: ["sources", "35", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/35/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74IOWarpQtv4ATNdB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/35/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167815.0>, params: %{}, path_info: ["sources", "35", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/35/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:08.181 [info] GET /sources/52/force_index 20:55:08.181 [debug] QUERY OK source="settings" db=0.1ms idle=361.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.182 [debug] QUERY OK source="settings" db=0.0ms idle=361.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.182 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:08.182 [error] #PID<0.167816.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 8) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/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/52/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167816.0>, params: %{}, path_info: ["sources", "52", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74I5j7XkVqRsATNeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/52/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_index", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, bindings: %{}, sock: {{172, 20, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.167816.0>, params: %{}, path_info: ["sources", "52", "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.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 20:55:08.360 [info] GET /media_profiles/1/edit 20:55:08.361 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 20:55:08.361 [debug] QUERY OK source="media_profiles" db=0.1ms idle=360.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:08.361 [debug] QUERY OK source="settings" db=0.1ms idle=361.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.362 [debug] QUERY OK source="settings" db=0.0ms idle=236.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.362 [debug] QUERY OK source="settings" db=0.0ms idle=180.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.363 [info] Sent 200 in 2ms 20:55:08.542 [info] GET /media_profiles/new 20:55:08.542 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 20:55:08.542 [debug] QUERY OK source="settings" db=0.1ms idle=360.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.542 [debug] QUERY OK source="settings" db=0.0ms idle=181.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.543 [debug] QUERY OK source="settings" db=0.0ms idle=181.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.543 [debug] QUERY OK source="settings" db=0.1ms idle=181.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.543 [debug] QUERY OK source="settings" db=0.0ms idle=181.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.544 [info] Sent 200 in 2ms 20:55:08.721 [info] GET /media_profiles/3/edit 20:55:08.722 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 20:55:08.722 [debug] QUERY OK source="media_profiles" db=0.1ms idle=179.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [3] 20:55:08.722 [debug] QUERY OK source="settings" db=0.0ms idle=179.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.722 [debug] QUERY OK source="settings" db=0.1ms idle=179.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.723 [debug] QUERY OK source="settings" db=0.0ms idle=179.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.724 [info] Sent 200 in 2ms 20:55:08.904 [info] GET /sources/55/force_metadata_refresh 20:55:08.904 [debug] QUERY OK source="settings" db=0.1ms idle=360.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.904 [debug] QUERY OK source="settings" db=0.0ms idle=182.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.905 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:08.905 [error] #PID<0.167820.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 12) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/55/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167820.0>, params: %{}, path_info: ["sources", "55", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://tubesync.cochrun.xyz", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 20, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/55/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74Ll75vClDU8ATNkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/55/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/55/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167820.0>, params: %{}, path_info: ["sources", "55", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 20:55:09.085 [info] GET /sources/43/force_metadata_refresh 20:55:09.086 [debug] QUERY OK source="settings" db=0.1ms idle=363.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:09.086 [debug] QUERY OK source="settings" db=0.0ms idle=363.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:09.086 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:09.086 [error] #PID<0.167821.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 13) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/43/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/43/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167821.0>, params: %{}, path_info: ["sources", "43", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/43/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74MRPrO6Nyw0ATNlB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/43/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/43/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167821.0>, params: %{}, path_info: ["sources", "43", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 20:55:09.267 [info] GET /sources/37/force_metadata_refresh 20:55:09.268 [debug] QUERY OK source="settings" db=0.2ms idle=363.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:09.268 [debug] QUERY OK source="settings" db=0.0ms idle=363.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:09.268 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:09.268 [error] #PID<0.167822.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 14) 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.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167822.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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"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", "GIZ74M8lKUZqz7oATNmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/37/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/37/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167822.0>, params: %{}, path_info: ["sources", "37", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 20:55:14.268 [info] GET /sources/30/force_metadata_refresh 20:55:14.269 [debug] QUERY OK source="settings" db=0.1ms idle=1922.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:14.269 [debug] QUERY OK source="settings" db=0.1ms idle=1922.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:14.269 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:14.270 [error] #PID<0.167823.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 15) 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.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167823.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: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"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", "GIZ74fk9yuOs5QcATNnB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/30/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/30/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167823.0>, params: %{}, path_info: ["sources", "30", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 20:55:18.024 [info] {"source":"oban","duration":3393,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:19.271 [info] GET /sources/29/force_metadata_refresh 20:55:19.272 [debug] QUERY OK source="settings" db=0.1ms idle=1925.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:19.272 [debug] QUERY OK source="settings" db=0.0ms idle=1247.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:19.272 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:19.272 [error] #PID<0.167824.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 16) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/29/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/29/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/29/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167824.0>, params: %{}, path_info: ["sources", "29", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/29/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ74yNu9lrO1y0ATNoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/29/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/29/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/29/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167824.0>, params: %{}, path_info: ["sources", "29", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 20:55:24.274 [info] GET /sources/35/force_metadata_refresh 20:55:24.275 [debug] QUERY OK source="settings" db=0.2ms idle=1927.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:24.275 [debug] QUERY OK source="settings" db=0.0ms idle=1928.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:24.275 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:24.275 [error] #PID<0.167827.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 17) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/35/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/35/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167827.0>, params: %{}, path_info: ["sources", "35", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/35/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ75E2gBguVatsATNpB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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/35/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/35/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167827.0>, params: %{}, path_info: ["sources", "35", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated) 20:55:29.277 [info] GET /sources/52/force_metadata_refresh 20:55:29.277 [debug] QUERY OK source="settings" db=0.1ms idle=1930.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:29.278 [debug] QUERY OK source="settings" db=0.0ms idle=1930.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:29.278 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 20:55:29.278 [error] #PID<0.167828.0> running PinchflatWeb.Endpoint (connection #PID<0.167808.0>, stream id 18) terminated Server: tubesync.cochrun.xyz:80 (http) Request: GET /sources/52/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/52/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167828.0>, params: %{}, path_info: ["sources", "52", "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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4"}, {"host", "tubesync.cochrun.xyz"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.180"}, {"x-forwarded-host", "tubesync.cochrun.xyz"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/52/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GIZ75XfR-A_qwv8ATNqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/52/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.167808.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/52/force_metadata_refresh", host: "tubesync.cochrun.xyz", peer: {{172, 20, 0, 1}, 55746}, 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.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4", "host" => "tubesync.cochrun.xyz", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.180", "x-forwarded-host" => "tubesync.cochrun.xyz", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYOTctYWxQUkNPMGhWVVh6TGlIbVRkRDNm.4YCEe9a2y9uwep7S-YjJdiE5PUceI4N9wfVoLRbYHU4" }, halted: false, host: "tubesync.cochrun.xyz", method: "GET", owner: #PID<0.167828.0>, params: %{}, path_info: ["sources", "52", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ (truncated)